<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&#39;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 &quot;provafinestra.glade&quot;<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 &#39;wid != NULL&#39; failed<br><br>premendo CTRL+C mi riporta, successivamente:<br>Traceback (most recent call last):<br>
File &quot;provafinestra.py&quot;, line 52, in (module)<br>gtk.main()<br>KeyboardInterrupt<br><br>Cosa posso aver sbagliato?<br>In fondo ho seguito alla lettera l&#39;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>&nbsp;&nbsp;&nbsp; import pygtk<br>&nbsp;&nbsp;&nbsp; #tell pyGTK, if possible, that we want GTKv2<br>
&nbsp;&nbsp;&nbsp; pygtk.require(&quot;2.0&quot;)<br>except:<br>&nbsp;&nbsp;&nbsp; #Some distributions come with GTK2, but not pyGTK<br>&nbsp;&nbsp;&nbsp; pass<br><br>try:<br>&nbsp; import gtk<br>&nbsp; import gtk.glade<br>except:<br>&nbsp; print &quot;You need to install pyGTK or GTKv2 &quot;,<br>
&nbsp; print &quot;or set your PYTHONPATH correctly.&quot;<br>&nbsp; print &quot;try: export PYTHONPATH=&quot;,<br>&nbsp; print &quot;/usr/local/lib/python2.2/site-packages/&quot;<br>&nbsp; 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>&nbsp; def __init__(self):<br>&nbsp;&nbsp;&nbsp; &quot;&quot;&quot;<br>&nbsp;&nbsp;&nbsp; In this init we are going to display the main<br>&nbsp;&nbsp;&nbsp; serverinfo window<br>&nbsp;&nbsp;&nbsp; &quot;&quot;&quot;<br>&nbsp;&nbsp;&nbsp; self.gladefile=&quot;provafinestra.glade&quot;<br>
&nbsp;&nbsp;&nbsp; self.windowname=&quot;serverinfo&quot;<br>&nbsp;&nbsp;&nbsp; self.wTree=gtk.glade.XML(self.gladefile,self.windowname)<br>&nbsp;&nbsp;&nbsp; # we only have two callbacks to register, but<br>&nbsp;&nbsp;&nbsp; # you could register any number, or use a<br>&nbsp;&nbsp;&nbsp; # special class that automatically<br>
&nbsp;&nbsp;&nbsp; # registers all callbacks. If you wanted to pass<br>&nbsp;&nbsp;&nbsp; # an argument, you would use a tuple like this:<br>&nbsp;&nbsp;&nbsp; # dic = { &quot;on button1_clicked&quot; : \<br>&nbsp;&nbsp;&nbsp; #39&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (self.button1_clicked, arg1,arg2) , ...<br>
<br>&nbsp;&nbsp;&nbsp; dic = { &quot;on_button1_clicked&quot; : self.button1_clicked,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;on_serverinfo_destroy&quot; : (gtk.mainquit) }<br>&nbsp;&nbsp;&nbsp; self.wTree.signal_autoconnect (dic)<br>&nbsp;&nbsp;&nbsp; return<br><br>#####CALLBACKS<br>
&nbsp; def button1_clicked(self,widget):<br>&nbsp;&nbsp;&nbsp; print &quot;button clicked&quot;<br><br># we start the app like this...<br>app=appgui()<br>gtk.main()<br clear="all"><br>-- <br>Vittorio Zuccalà<br>
</div>