使用PyQt5做界面開發時,如果做一個較復雜的程序時往往會涉及到在主程序中打開某個菜單彈出子窗口的問題,如果在打開很多子窗口的時候想一鍵退出關閉主窗口,但其它的子窗口仍然正常顯示着,那么如何在代碼中進行處理關閉主程序時所有關聯的子窗口也一並關閉掉,下面就介紹方法,主要是對PyQt5的 closeEvent 方法進行重寫即可
將該closeEvent方法重寫在主界面的類中
1 def closeEvent(self, event): 2 """重寫該方法主要是解決打開子窗口時,如果關閉了主窗口但子窗口仍顯示的問題,使用sys.exit(0) 時就會只要關閉了主窗口,所有關聯的子窗口也會全部關閉""" 3 sys.exit(0)
然后運行時只要你通過窗口右上角的關閉按鈕,或者是菜單中的退出按鈕(按鈕事先已經綁定了槽函數self.close),這樣只要你打開了再多的子窗口,這時在主界面中退出或者關閉都會將所有子窗口隨主界面的關閉而關閉了