使用PyGTK和Glade创建用户界面(part 2)
时间:2006-08-06 来源:pangwa
原文
接上篇:)
接下来就要把这个按钮的点击事件和一个函数关联起来. 我们需要再次使用Glade编辑界面来实现这个功能.
首先在主窗口中选中这个按钮对象然后再在属性窗口中选择”信号”标签页. 在这里我们需要通过点击信息浏览按钮(…)然后选择”Clicked”来添加一个信号.这就默认创建了一个名字为”on_btnHelloWorld_clicked”的处理器”. 我们可以修改这个处理器的名字但是现在使用默认的名字就可以了.
Glade的工作到此就结束了. 现在我们需要把这个事件和在代码中一些东西关联起来. 很幸运的是这个可以很简单的用 gtk.glade.XML.signal_autoconnect函数来实现.
有用的链接:
首先在主窗口中选中这个按钮对象然后再在属性窗口中选择”信号”标签页. 在这里我们需要通过点击信息浏览按钮(…)然后选择”Clicked”来添加一个信号.这就默认创建了一个名字为”on_btnHelloWorld_clicked”的处理器”. 我们可以修改这个处理器的名字但是现在使用默认的名字就可以了.
500)this.width=500;" border=0>
Glade的工作到此就结束了. 现在我们需要把这个事件和在代码中一些东西关联起来. 很幸运的是这个可以很简单的用 gtk.glade.XML.signal_autoconnect函数来实现.
#Create our dictionay and connect it dic = { "on_btnHelloWorld_clicked" : self.btnHelloWorld_clicked, "on_MainWindow_destroy" : gtk.main_quit } self.wTree.signal_autoconnect(dic) |
简单的讲, 这个词典是由事件名和所要关联的函数构成的. 你可以看到我们把按钮的点击事件和一个函数关联起来,然后再把”on_MainWindow_destory”事件和gtk.mainquit()函数关联起来. 这个是我们原来在关闭掉窗口时程序代码的一个替换, 如果你还想使用原来的词典, 你应当在glade中为主窗口添加一个destory事件.
下一件事就是为类HeloowWolrdGTK创建btnHelloWorld_clicked函数:
def btnHelloWorld_clicked(self, widget): print "Hello World!" |
真是太简单了! 现在当你运行它的时候, 点击一下”Click Me!”按钮你可以看到在命令行中输出了”Hello World!”.
这就是本节课的内容, 但是现在我真的喜欢上了使用PyGTK和Glade工作. 下面是完整的程序代码:
#!/usr/bin/env python import sys try: import pygtk pygtk.require("2.0") except: pass try: import gtk import gtk.glade except: sys.exit(1) class HellowWorldGTK: """This is an Hello World GTK application""" def __init__(self): #Set the Glade file self.gladefile = "pyhelloworld.glade" self.wTree = gtk.glade.XML(self.gladefile) #Create our dictionay and connect it dic = { "on_btnHelloWorld_clicked" : self.btnHelloWorld_clicked, "on_MainWindow_destroy" : gtk.main_quit } self.wTree.signal_autoconnect(dic) def btnHelloWorld_clicked(self, widget): print "Hello World!" if __name__ == "__main__": hwg = HellowWorldGTK() gtk.main() |
有用的链接:
http://www.linuxjournal.com/article/6586
http://www.async.com.br/~kiko/pygtk-web/articles/bitpodder/BitPodder.htm
http://www.linuxjournal.com/article/7421
http://www.pygtk.org/articles.html
http://www.pygtk.org/tutorial.html
相关阅读 更多 +