[Python] Prima interfaccia

Vittorio Zuccala' vittorio.zuccala a gmail.com
Mar 12 Ago 2008 17:41:48 CEST


Salve a tutti,
come qualcuno avrà notato, mi sto cimentando con la interfaccia grafica con
python coadiuvato da glade.
Seguendo l'esempio su http://www.linuxjournal.com/article/6586
ho costruito la interfaccia su glade e salvata come "provafinestra.glade"
e successivamente ho fatto copia ed incolla del codice che risulta come
riportato sotto.

Purtroppo, però, quando avvio lo script il risultato è lo stallo del prompt
del dos
e una risposta su schermo che recita come segue:

(python.exe:476): libglade-CRITICAL ** glade_xml_build_interface: assertion
'wid != NULL' failed

premendo CTRL+C mi riporta, successivamente:
Traceback (most recent call last):
File "provafinestra.py", line 52, in (module)
gtk.main()
KeyboardInterrupt

Cosa posso aver sbagliato?
In fondo ho seguito alla lettera l'esempio...
Il problema è che nessuna finestra è visibile...
Qualche idea su cosa possa aver sbagliato?
Grazie infinite.



------------------------------CODICE----------------
import sys

try:
    import pygtk
    #tell pyGTK, if possible, that we want GTKv2
    pygtk.require("2.0")
except:
    #Some distributions come with GTK2, but not pyGTK
    pass

try:
  import gtk
  import gtk.glade
except:
  print "You need to install pyGTK or GTKv2 ",
  print "or set your PYTHONPATH correctly."
  print "try: export PYTHONPATH=",
  print "/usr/local/lib/python2.2/site-packages/"
  sys.exit(1)

#now we have both gtk and gtk.glade imported
#Also, we know we are running GTK v2

class appgui:
  def __init__(self):
    """
    In this init we are going to display the main
    serverinfo window
    """
    self.gladefile="provafinestra.glade"
    self.windowname="serverinfo"
    self.wTree=gtk.glade.XML(self.gladefile,self.windowname)
    # we only have two callbacks to register, but
    # you could register any number, or use a
    # special class that automatically
    # registers all callbacks. If you wanted to pass
    # an argument, you would use a tuple like this:
    # dic = { "on button1_clicked" : \
    #39         (self.button1_clicked, arg1,arg2) , ...

    dic = { "on_button1_clicked" : self.button1_clicked,
            "on_serverinfo_destroy" : (gtk.mainquit) }
    self.wTree.signal_autoconnect (dic)
    return

#####CALLBACKS
  def button1_clicked(self,widget):
    print "button clicked"

# we start the app like this...
app=appgui()
gtk.main()

-- 
Vittorio Zuccalà
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: http://lists.python.it/pipermail/python/attachments/20080812/762e94bd/attachment.htm 


Maggiori informazioni sulla lista Python