我的意图是使用pyGTK的主循环创建一个函数,在等待用户输入时阻塞。我遇到的问题在代码最好的解释:PyGTK主循环的阻塞行为
#! /usr/bin/python
import gtk
def test():
retval = True
def cb(widget):
retval = False
gtk.main_quit()
window = gtk.Window(gtk.WINDOW_TOPLEVEL)
button = gtk.Button("Test")
button.connect("clicked", cb)
button.show()
window.add(button)
window.show()
gtk.main()
return retval
if __name__ == "__main__":
print test() # prints True when the button is clicked
看来,指令的确切顺序(retval
变化值,然后退出主循环)不被这里跟随。
有没有办法解决这个问题,或者这只是我的错误设计?
嗯..如果我使用2.6? – int3 2009-12-11 20:44:08
确实修复它,谢谢!您链接到的PEP还提供了另一种解决方案(使用'命名空间'类)。我必须决定哪一个不那么难看:P – int3 2009-12-11 20:58:30