我的意圖是使用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