在我的wxpython應用程序中,我有一個父框架和一個子框架。當我點擊子框架內的一個按鈕時,我希望它向父框架發送一些數據(列表,字符串等),關閉它本身,顯示父框架並最終在父框架中調用一個函數。我怎樣才能做到這一點? (尤其是函數調用)在另一個框架中調用函數(WxPython)
在此先感謝。
解決
在我的wxpython應用程序中,我有一個父框架和一個子框架。當我點擊子框架內的一個按鈕時,我希望它向父框架發送一些數據(列表,字符串等),關閉它本身,顯示父框架並最終在父框架中調用一個函數。我怎樣才能做到這一點? (尤其是函數調用)在另一個框架中調用函數(WxPython)
在此先感謝。
解決
你應該點擊該按鈕生成包含數據的事件。然後將事件處理程序添加到從事件中提取數據並調用該函數的父框架。 wxPython wiki有一個涵蓋事件的tutorial。 wx文檔也有一個event handling overview。
你的答案似乎是解決方案。所以我點擊按鈕生成一個包含數據的事件。但是,我怎樣才能捕獲這個數據與我的父框架內的事件處理程序? – Shansal 2011-06-01 05:43:18
要使用該方法,我認爲您需要使用PostEvent。 – 2011-06-01 14:03:59
您可以使用發佈 - 訂閱來做到這一點:http://www.blog.pythonlibrary.org/2010/06/27/wxpython-and-pubsub-a-simple-tutorial/
或者你也可以只使用一個對話的一個子類,而不是並顯示它有模式。或者你可以使用PostEvent來傳遞事件。這裏有一個例子:http://www.blog.pythonlibrary.org/2010/05/22/wxpython-and-threads/
我剛剛想到的另一種方法是使用套接字服務器或類似的方法,並將數據發佈到該服務器上,並讓程序檢查服務器是否有新數據。雖然這個用例相當複雜。
你應該標記一個答案,接受是否能解決你的問題,而不是編輯您的問題說「解決」 – Velociraptors 2011-06-01 20:26:25
確定。你是對的。但是如果我自己解決這個問題,我想我可以編輯它以「解決」並解釋我做了什麼,對吧? – Shansal 2011-06-03 06:29:29
將其添加爲答案。你可以接受你自己的答案。 – Velociraptors 2011-06-03 12:48:55