用pyqt5設(shè)計(jì)了一個(gè)主窗體,在窗體運(yùn)行時(shí)需要把一個(gè)無限循環(huán)放在一個(gè)線程去工作。運(yùn)行后,發(fā)現(xiàn)通過鼠標(biāo)按主窗體的關(guān)閉按鍵關(guān)閉主創(chuàng)體后,線程不會(huì)自動(dòng)終止,依然在運(yùn)行。盡管對(duì)我的使用場(chǎng)景來說,這不是問題,因?yàn)榱ⅠR就關(guān)機(jī)了。但在調(diào)試階段就恨繁,因?yàn)楹笈_(tái)線程很占資源。怎么能讓主窗體關(guān)閉是子線程也退出呢?百度了許久,很多方法都不行。
主要試過的有:
1、設(shè)置:self.thread.Daemon=True
2、在子線程設(shè)置一個(gè)變量,通過改變變量的值使循環(huán)不滿足條件,自動(dòng)結(jié)束
3、設(shè)置析構(gòu)函數(shù)
還有別的奇葩。都不行。
今天發(fā)現(xiàn),其實(shí)很簡單。就是重構(gòu)主窗體的closeEvent()函數(shù)。
def closeEvent(self,event): sys.exit(app.exec_())
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。