我正在使用Wxpython中的GUI編寫用python編程的項目,最後3個不眠之夜現在我碰到了。其實主內部我在另一個線程執行一個新的子幀,我想要的是停止進一步的代碼執行,直到其子幀完成其工作並關閉。 我嘗試過使用threading.Thread.join()方法,但它似乎不能有效地工作,並且在主父框架關閉後掛起。 有沒有任何有效的方法來做這件事?WxPython:如何停止在主父框架中的進一步代碼執行,直到其子框架已關閉
0
A
回答
3
使用wx.Dialog而不是子框架及其ShowModal()方法來停止主框架的執行。從技術上講,您也可以使用框架的MakeModal()方法獲得類似效果,但我認爲使用對話框更有意義。順便說一下,在使用wxPython(或任何GUI工具包)的線程時,必須使用工具包的線程安全方法來更新GUI。您不應該嘗試直接從線程訪問GUI元素,因爲這是未定義的行爲。相反,使用wx.CallAfter,wx.CallLater或wx.PostEvent,因爲它們是wxPython的線程安全方法。
參見:
+0
Mike知道他的wx的東西; P ...顯然在解釋比我在評論:) –
+0
謝謝!你有正確的想法,我只是將答案形式化了一下,並認爲應該有關於如何使用wx的線程的解釋,因爲這可能是一個粘性主題。 –
相關問題
- 1. 如何在關閉子框架(Java + iReport)時阻止父框架關閉?
- 2. 關閉/退出沒有關閉父框架的子框架
- 3. 在wxPython中創建主框架的子框架
- 4. JDialog:防止父框架關閉
- 5. 不應該訪問父框架直到關閉孩子?
- 6. 「爺爺框架內的父框架內的兒童框架」wxPython
- 7. 一個JFrame中不停止其他框架的代碼
- 8. 如何停止代碼在另一個框架中工作
- 9. 顯示已刪除的子框架(wxPython)
- 10. 框架內的框架WxPython
- 11. 僅在另一個特定框架已關閉之前關閉框架
- 12. 如何使用wxpython將數據從子框架發送到主框架
- 13. 如何在wxPython中從父框架更新子面板的UI
- 14. wxpython:關閉框架但沒有腳本
- 15. 子框架調用父框架。代碼設計
- 16. 如何在打開新框架時關閉前一個框架
- 17. 在播放框架中異步執行代碼塊的問題
- 18. 暫停執行,直到子對話框關閉
- 19. 如何停止加載容器直到執行父UIviewcontroller代碼?
- 20. 如何在播放框架中停止當前執行
- 21. 如何關閉框架?
- 22. 爲什麼關閉子框架也是Java swing中的主框架?
- 23. 框架導航中的UWP框架 - 如何訪問父框架?
- 24. 測試框架如何停止運行測試的執行?
- 25. wxPython子框架交互
- 26. 停止在java中執行進一步的代碼
- 27. 如何在屏幕旋轉後停止android打印框架對話框關閉?
- 28. 如何製作框架代碼的非框架代碼? (PHP)
- 29. 將數據從子框架返回到java中的父框架
- 30. 如何從子框架中導航父框架
犯規WX告訴你專門從主線程推出的所有幀? ...爲什麼你不把線程分開去做工作? (也許看看你是否真的需要線程...... GIL使它們比線程通常稍微有用... –
@JoranBeasley okey ...但是如何停止進一步執行主父幀代碼直到它的子幀有完成它的工作並關閉 –
然後,你只是繼承'wx.Dialog'而不是'wx.Frame'和'ShowModal'而不是Show' –