pyqt點選右上角關閉介面但是子執行緒仍在執行

2022-07-29 00:03:20 字數 888 閱讀 7028

現象:

通過右上角的叉關閉圖形介面後,程式執行的子執行緒卻不會被自動關閉,依然留存在系統中

原因:

子執行緒沒有正確關閉

解決方法:

1.將子執行緒設定成守護執行緒

self.your_thread = threading.thread(target=self.tcp_client_concurrency)

#設定執行緒為守護執行緒,防止退出主線程時,子執行緒仍在執行

self.your_thread.setdaemon(true)

#新執行緒啟動

self.your_thread.start()

2.重構 def closeevent(self, event): 函式

def

closeevent(self, event):

"""對mainwindow的函式closeevent進行重構

退出軟體時結束所有程序

:param event:

:return:

"""reply =qtwidgets.qmessagebox.question(self,

'本程式',

"是否要退出程式?",

qtwidgets.qmessagebox.yes |qtwidgets.qmessagebox.no,

qtwidgets.qmessagebox.no)

if reply ==qtwidgets.qmessagebox.yes:

event.accept()

os._exit(0)

else

:event.ignore()

**自:

silverlight 讓右上角關閉按鈕 無效

有乙個需求,在彈出的頁面裡,使用者沒有進行某個操作時,不允許退出彈出頁面。專案是silverlight做的。彈出頁面是個silverlight子視窗。vs會自動在頁面右上角有個x按鈕。先上一段開始寫的遮蔽右上角關閉按鈕的 為頁面新增closing事件。1 關閉窗體 2private void chi...

layui彈窗點選右上角關閉按鈕二次確認

在使用layui彈窗時,有時關閉彈窗要進行二次確認,是否要關閉彈窗,但是在右上角關閉按鈕 預設點選之後直接關閉彈窗,並不執行 裡的 而官網給出二次確認 使用的是瀏覽器自帶的提示彈窗,與 風格不一致,於是在網上查了很多,有也提出了這個問題,卻並沒有查到解決辦法。在專案開發中要使用到該功能,在新增資訊過...

js Dialog 去掉右上角的X關閉功能

用到 dialog彈出框時,不想要右上角的x 關閉功能,只是做個提示資訊顯示,下面是具體的去掉方法,大家可以參考下 再用到 dialog彈出框時,不想要右上角的x 關閉功能,只是做個提示資訊顯示。在網上找了一些資料。網上找了三種解決方案 第一種是可用的。1 div1 dialog 不希望使用者通過j...