我在林間空地製作了AboutDialog
箱子,但關閉按鈕不起作用。我不知道如何將此按鈕連接到單獨的函數,因爲它位於名爲dialog-action_area
的小部件中。關於Dialog關閉的空地
另一個問題是,如果我使用由窗口管理器創建的關閉按鈕,我無法再打開它,因爲它已被銷燬。
我該如何改變這個以便它隱藏?
我在林間空地製作了AboutDialog
箱子,但關閉按鈕不起作用。我不知道如何將此按鈕連接到單獨的函數,因爲它位於名爲dialog-action_area
的小部件中。關於Dialog關閉的空地
另一個問題是,如果我使用由窗口管理器創建的關閉按鈕,我無法再打開它,因爲它已被銷燬。
我該如何改變這個以便它隱藏?
你需要,當你收到刪除或取消信號調用控件的隱藏()方法:
response = self.wTree.get_widget("aboutdialog1").run() # or however you run it
if response == gtk.RESPONSE_DELETE_EVENT or response == gtk.RESPONSE_CANCEL:
self.wTree.get_widget("aboutdialog1").hide()
您可以找到響應類型常量in the GTK documentation
和任何其他對話窗口,他們需要你到
首先將阻止主循環,並會盡快對話收到響應,這可能是返回,點擊任何按鈕,在行動區域或按Esc,或調用對話框的響應方法或「銷燬」窗口,最後並不意味着窗口將被銷燬,這意味着run()方法將退出並返回響應。像這樣:
response = dialog.run()
如果您使用調試器,你會發現,主循環,直到你點擊一個按鈕或試圖關閉對話框停留在那裏。一旦你收到你的答覆,那麼你可以使用它,只要你想。
response = dialog.run()
if response == gtk.RESPONSE_OK:
#do something here if the user hit the OK button
dialog.destroy()
第二個允許你在非阻塞的東西中使用對話框,然後你必須將你的對話框連接到「響應」信號。
def do_response(dialog, response):
if response == gtk.RESPONSE_OK:
#do something here if the user hit the OK button
dialog.destroy()
dialog.connect('response', do_response)
現在,你發現,你必須摧毀你的對話框
它的工作,我想我有一個更好的理解這一次所有作品,如何感謝您的幫助。 – wodemoneke 2009-02-23 19:43:21