<div dir="ltr">Salve a tutti,<br>come qualcuno avrà notato, mi sto cimentando con la interfaccia grafica con<br>python coadiuvato da glade.<br>Seguendo l'esempio su <a href="http://www.linuxjournal.com/article/6586">http://www.linuxjournal.com/article/6586</a><br>
ho costruito la interfaccia su glade e salvata come "provafinestra.glade"<br>e successivamente ho fatto copia ed incolla del codice che risulta come riportato sotto.<br><br>Purtroppo, però, quando avvio lo script il risultato è lo stallo del prompt del dos<br>
e una risposta su schermo che recita come segue:<br><br>(python.exe:476): libglade-CRITICAL ** glade_xml_build_interface: assertion 'wid != NULL' failed<br><br>premendo CTRL+C mi riporta, successivamente:<br>Traceback (most recent call last):<br>
File "provafinestra.py", line 52, in (module)<br>gtk.main()<br>KeyboardInterrupt<br><br>Cosa posso aver sbagliato?<br>In fondo ho seguito alla lettera l'esempio...<br>Il problema è che nessuna finestra è visibile...<br>
Qualche idea su cosa possa aver sbagliato?<br>Grazie infinite.<br><br><br><br>------------------------------CODICE----------------<br>import sys<br><br>try:<br> import pygtk<br> #tell pyGTK, if possible, that we want GTKv2<br>
pygtk.require("2.0")<br>except:<br> #Some distributions come with GTK2, but not pyGTK<br> pass<br><br>try:<br> import gtk<br> import gtk.glade<br>except:<br> print "You need to install pyGTK or GTKv2 ",<br>
print "or set your PYTHONPATH correctly."<br> print "try: export PYTHONPATH=",<br> print "/usr/local/lib/python2.2/site-packages/"<br> sys.exit(1)<br><br>#now we have both gtk and gtk.glade imported<br>
#Also, we know we are running GTK v2<br><br>class appgui:<br> def __init__(self):<br> """<br> In this init we are going to display the main<br> serverinfo window<br> """<br> self.gladefile="provafinestra.glade"<br>
self.windowname="serverinfo"<br> self.wTree=gtk.glade.XML(self.gladefile,self.windowname)<br> # we only have two callbacks to register, but<br> # you could register any number, or use a<br> # special class that automatically<br>
# registers all callbacks. If you wanted to pass<br> # an argument, you would use a tuple like this:<br> # dic = { "on button1_clicked" : \<br> #39 (self.button1_clicked, arg1,arg2) , ...<br>
<br> dic = { "on_button1_clicked" : self.button1_clicked,<br> "on_serverinfo_destroy" : (gtk.mainquit) }<br> self.wTree.signal_autoconnect (dic)<br> return<br><br>#####CALLBACKS<br>
def button1_clicked(self,widget):<br> print "button clicked"<br><br># we start the app like this...<br>app=appgui()<br>gtk.main()<br clear="all"><br>-- <br>Vittorio Zuccalà<br>
</div>