Я пытаюсь создать графический интерфейс, используя pygtk и glade в Windows. Я новичок в создании графического интерфейса пользователя на Python, так что, пожалуйста, извините за мою глупость. Я просмотрел это руководство и сделал именно то, что было сказано. Единственная разница заключалась в том, что я использую 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>