您好,登錄后才能下訂單哦!
這篇文章主要介紹了PyQt5 closeEvent關閉事件退出提示框原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
如果關閉QWidget,就會產生一個QCloseEvent,并且把它傳入到closeEvent函數的event參數中。改變控件的默認行為,就是替換掉默認的事件處理。
原生的英文提示框:
# 添加一個退出的提示事件 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 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()
# 添加中文的退出提示框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()
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。