Я пытаюсь построить графический интерфейс, используя pygtk и glade в Windows. Я новичок в создании Python GUI, так что прошу прощения за мою нубность. Я посмотрел этот учебник и сделал именно так, как он сказал. Единственная разница была в том, что я на Windows 7 Home Premium x64.
Я поместил метку и кнопку в окне, используя glade, как в учебнике, а затем получил xml-файл libglade. Затем я набрал следующий код
import sys
import pygtk
import gtk
import gtk.glade
pygtk.require("2.0")
class HellowWorldGTK:
def __init__(self):
#Set the Glade file
self.gladefile = "Hello_World.glade"
self.wTree = gtk.glade.XML(self.gladefile)
#Get the Main Window, and connect the "destroy" event
self.window = self.wTree.get_widget("MainWindow")
if (self.window):
self.window.connect("destroy", gtk.main_quit)
if __name__ == "__main__":
hwg = HellowWorldGTK()
gtk.main()
Я помещаю оба файла в одну и ту же папку, а затем запускаю интерпретатор python из командной строки в папке. Очевидно, что программа запускается, но дело в том, что я не могу получить интерфейс все, что получаю по команде Линия такова, что Программа работает. Я даже не получаю ошибку или что-то. Это из-за того, что я на Windows ?? Я думал, что GTK является кроссплатформенным, и один и тот же код должен работать как в Windows, так и в Linux ??
Также вот файл .glade, сгенерированный дизайнером GLADE GUI
<?xml version="1.0" encoding="UTF-8"?>
<glade-interface>
<!-- interface-requires gtk+ 2.24 -->
<!-- interface-naming-policy project-wide -->
<widget class="GtkWindow" id="Hello world!">
<property name="can_focus">False</property>
<property name="resizable">False</property>
<child>
<widget class="GtkVBox" id="vbox1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<widget class="GtkLabel" id="Click Here!">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">label</property>
</widget>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<widget class="GtkButton" id="Please Click on the Button!">
<property name="label" translatable="yes">button</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_action_appearance">False</property>
</widget>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</widget>
</child>
</widget>
</glade-interface>