這篇文章主要介紹了PyQt5 closeEvent關閉事件退出提示框原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
如果關閉QWidget,就會產生一個QCloseEvent,并且把它傳入到closeEvent函數的event參數中。改變控件的默認行為,就是替換掉默認的事件處理。
原生的英文提示框:
1
2
3
4
5
6
7
8
9
10
11
12
|
# 添加一個退出的提示事件 def closeEvent( self , event): """我們創建了一個消息框,上面有倆按鈕:Yes和No.第一個字符串顯示在消息框的標題欄,第二個字符串顯示在對話框, 第三個參數是消息框的倆按鈕,最后一個參數是默認按鈕,這個按鈕是默認選中的。返回值在變量reply里。""" reply = QMessageBox.question( self , 'Message' , "Are you sure to quit?" , QMessageBox.Yes | QMessageBox.No, QMessageBox.No) # 判斷返回值,如果點擊的是Yes按鈕,我們就關閉組件和應用,否則就忽略關閉事件 if reply = = QMessageBox.Yes: event.accept() else : event.ignore() |
修改成中文樣式:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
# 添加中文的確認退出提示框1 def closeEvent( self , event): # 創建一個消息盒子(提示框) quitMsgBox = QMessageBox() # 設置提示框的標題 quitMsgBox.setWindowTitle( '確認提示' ) # 設置提示框的內容 quitMsgBox.setText( '你確認退出嗎?' ) # 設置按鈕標準,一個yes一個no quitMsgBox.setStandardButtons(QMessageBox.Yes | QMessageBox.No) # 獲取兩個按鈕并且修改顯示文本 buttonY = quitMsgBox.button(QMessageBox.Yes) buttonY.setText( '確定' ) buttonN = quitMsgBox.button(QMessageBox.No) buttonN.setText( '取消' ) quitMsgBox.exec_() # 判斷返回值,如果點擊的是Yes按鈕,我們就關閉組件和應用,否則就忽略關閉事件 if quitMsgBox.clickedButton() = = buttonY: event.accept() else : event.ignore() |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
# 添加中文的退出提示框2 def closeEvent( self , event): # 創建一個消息盒子(提示框) quitMsgBox = QMessageBox() # 設置提示框的標題 quitMsgBox.setWindowTitle( '確認窗口' ) # 設置提示框的內容 quitMsgBox.setText( '你確定退出嗎?' ) # 創建兩個點擊的按鈕,修改文本顯示內容 buttonY = QPushButton( '確定' ) buttonN = QPushButton( '取消' ) # 將兩個按鈕加到這個消息盒子中去,并指定yes和no的功能 quitMsgBox.addButton(buttonY, QMessageBox.YesRole) quitMsgBox.addButton(buttonN, QMessageBox.NoRole) quitMsgBox.exec_() # 判斷返回值,如果點擊的是Yes按鈕,我們就關閉組件和應用,否則就忽略關閉事件 if quitMsgBox.clickedButton() = = buttonY: event.accept() else : event.ignore() |
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:https://www.cnblogs.com/milesma/p/12149176.html