我的目的是使用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
,然后退出主循环)。
有没有办法解决这个问题,或者这只是我个人的糟糕设计?