一、使用Glade3创建GtkBuilder格式,并保存hello_gtkBuilder.glade,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk+" version="2.16"/>
<!-- interface-naming-policy project-wide -->
<object class="GtkWindow" id="mainWindow">
<child>
<object class="GtkHButtonBox" id="hbuttonbox">
<property name="visible">True</property>
<child>
<object class="GtkButton" id="cmdOK">
<property name="label">gtk-ok</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
<signal name="clicked" handler="on_cmdOK_clicked"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="cmdCancel">
<property name="label" translatable="yes">Cancel</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<signal name="clicked" handler="on_cmdCancel_clicked"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
</object>
</interface>
二、创建hello_gtkBuilder.py ,内容如下:
#!/usr/bin/env python
# hello_gtkBuilder.py
importpygtk
pygtk.require('2.0')
importgtk
classHelloWorld:
def__init__(self):
self.gladeMain = gtk.Builder()
self.gladeMain.add_from_file("hello_gtkBuilder.glade")
self.gladeMain.connect_signals(self)
self.mainWindow = self.gladeMain.get_object("mainWindow")
self.mainWindow.set_position(gtk.WIN_POS_CENTER_ALWAYS)
self.mainWindow.set_default_size(210, 60)
self.mainWindow.show()
def on_cmdCancel_clicked(self, *args):
print"on_cmdCancel_clicked"
gtk.main_quit()
def on_cmdOK_clicked(self, *args):
print"on_cmdOK_clicked occurred: Hello World"
self.mainWindow.set_title("Hello World")
def main(self):
gtk.main()
if__name__ == "__main__":
hello = HelloWorld()
hello.main()