2010-10-12 90 views
0

我使用GtkAboutDialog,除了此小部件的關閉按鈕外,一切正常。所有其他按鈕工作正常,我不知道如何,但所有按鈕都有默認回調,他們創建和銷燬窗口。 但是GtkAboutDialog小部件的「關閉」按鈕不起作用。我什至不能看到它的小部件。那麼,我可以訪問它嗎?GtkAboutDialog關閉按鈕錯誤

[CLARIFICATION]你在看什麼是gtk.AboutDialog - 彈出窗口顯示應用程序的信息(PyGTK 2.6中的新增功能)。此窗口包含GtkHButtonBox小部件中包含的'close'按鈕小部件。 GtkHButtonBox小部件是我能夠訪問的最高級別小部件。有關如何進入「關閉」按鈕並連接回調信號處理程序的任何想法?

alt text

+0

你的問題不清楚,你能舉一個你想要做什麼的例子嗎? – ptomato 2010-10-13 16:00:59

回答

1

您的對話框,您的窗口做做同樣的方式不conenct信號。學習PyGTK時我犯了同樣的錯誤。

對話的最基本的形式是你展示並運行對話框:

aboutdialog.run() 

通常,你會立即撥打:

aboutdialog.destroy() 

的.RUN()線是一個循環,直到在對話框內發生了一些事情。

有一個工作example here

1

gtk.AboutDialog只是一個gtk.Dialog,你用同樣的方式處理它的響應。而不是連接到按鈕的單擊信號,對話框代碼將爲您處理並從您的run()呼叫返回一個響應。您可以檢查返回的響應的值,以確定單擊了哪個按鈕。

如果您嘗試改寫某些行爲,則可以連接到gtk.Dialogresponse信號。

0

這是一個古老的問題,但由於它是谷歌的第一個命中之一,我以爲我會拋出我找到的解決方案。您需要一個事件處理程序來顯示關於該對話框的信息,以及一個關閉它。第一個可能會連接到你的幫助 - >關於menuitem的activate信號。後者應連接到about對話框的response信號。這兩種處理器將是這個樣子:

def on_menuitemHelpAbout_activate(self, *args): 
    self.builder.get_object('aboutdialog').show() 
def on_aboutdialog_response(self, *args): 
    self.builder.get_object('aboutdialog').hide() 

在上面的例子中,我使用GtkBuilder找到我的關於對話框,因爲我已經構建了林間空地的接口。請注意,我在.run()之上使用了.show(),因爲在關閉對話框之前我沒有看到停止執行程序的意義。最後,響應處理程序可以根據響應採取任何操作,但我在此忽略它。