PyQt5 closeEvent關(guān)閉事件退出提示框原理解析
這篇文章主要介紹了PyQt5 closeEvent關(guān)閉事件退出提示框原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
如果關(guān)閉QWidget,就會(huì)產(chǎn)生一個(gè)QCloseEvent,并且把它傳入到closeEvent函數(shù)的event參數(shù)中。改變控件的默認(rèn)行為,就是替換掉默認(rèn)的事件處理。
原生的英文提示框:
# 添加一個(gè)退出的提示事件 def closeEvent(self, event): """我們創(chuàng)建了一個(gè)消息框,上面有倆按鈕:Yes和No.第一個(gè)字符串顯示在消息框的標(biāo)題欄,第二個(gè)字符串顯示在對(duì)話框, 第三個(gè)參數(shù)是消息框的倆按鈕,最后一個(gè)參數(shù)是默認(rèn)按鈕,這個(gè)按鈕是默認(rèn)選中的。返回值在變量reply里。""" reply = QMessageBox.question(self, 'Message',"Are you sure to quit?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No) # 判斷返回值,如果點(diǎn)擊的是Yes按鈕,我們就關(guān)閉組件和應(yīng)用,否則就忽略關(guān)閉事件 if reply == QMessageBox.Yes: event.accept() else: event.ignore()
修改成中文樣式:
# 添加中文的確認(rèn)退出提示框1 def closeEvent(self, event): # 創(chuàng)建一個(gè)消息盒子(提示框) quitMsgBox = QMessageBox() # 設(shè)置提示框的標(biāo)題 quitMsgBox.setWindowTitle('確認(rèn)提示') # 設(shè)置提示框的內(nèi)容 quitMsgBox.setText('你確認(rèn)退出嗎?') # 設(shè)置按鈕標(biāo)準(zhǔn),一個(gè)yes一個(gè)no quitMsgBox.setStandardButtons(QMessageBox.Yes | QMessageBox.No) # 獲取兩個(gè)按鈕并且修改顯示文本 buttonY = quitMsgBox.button(QMessageBox.Yes) buttonY.setText('確定') buttonN = quitMsgBox.button(QMessageBox.No) buttonN.setText('取消') quitMsgBox.exec_() # 判斷返回值,如果點(diǎn)擊的是Yes按鈕,我們就關(guān)閉組件和應(yīng)用,否則就忽略關(guān)閉事件 if quitMsgBox.clickedButton() == buttonY: event.accept() else: event.ignore()
# 添加中文的退出提示框2 def closeEvent(self, event): # 創(chuàng)建一個(gè)消息盒子(提示框) quitMsgBox = QMessageBox() # 設(shè)置提示框的標(biāo)題 quitMsgBox.setWindowTitle('確認(rèn)窗口') # 設(shè)置提示框的內(nèi)容 quitMsgBox.setText('你確定退出嗎?') # 創(chuàng)建兩個(gè)點(diǎn)擊的按鈕,修改文本顯示內(nèi)容 buttonY = QPushButton('確定') buttonN = QPushButton('取消') # 將兩個(gè)按鈕加到這個(gè)消息盒子中去,并指定yes和no的功能 quitMsgBox.addButton(buttonY, QMessageBox.YesRole) quitMsgBox.addButton(buttonN, QMessageBox.NoRole) quitMsgBox.exec_() # 判斷返回值,如果點(diǎn)擊的是Yes按鈕,我們就關(guān)閉組件和應(yīng)用,否則就忽略關(guān)閉事件 if quitMsgBox.clickedButton() == buttonY: event.accept() else: event.ignore()
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5信號(hào)與槽事件處理機(jī)制詳細(xì)介紹與實(shí)例解析
- python編程PyQt5創(chuàng)建按鈕及觸發(fā)點(diǎn)擊事件示例解析
- 使用pyqt5 實(shí)現(xiàn)ComboBox的鼠標(biāo)點(diǎn)擊觸發(fā)事件
- PyQt5重寫(xiě)QComboBox的鼠標(biāo)點(diǎn)擊事件方法
- pyqt5 comboBox獲得下標(biāo)、文本和事件選中函數(shù)的方法
- PyQt5每天必學(xué)之事件與信號(hào)
- 詳解PyQt5?事件處理機(jī)制
相關(guān)文章
從零學(xué)Python之入門(mén)(四)運(yùn)算
最近2天,各種不順利,還被一個(gè)油門(mén)當(dāng)剎車的憨貨給追尾了,所以本系列發(fā)的比較少,本文是系列的第四篇,講述的是Python的運(yùn)算2014-05-05PyTorch中Tensor的數(shù)據(jù)統(tǒng)計(jì)示例
今天小編就為大家分享一篇PyTorch中Tensor的數(shù)據(jù)統(tǒng)計(jì)示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02selenium2.0中常用的python函數(shù)匯總
這篇文章主要介紹了selenium2.0中常用的python函數(shù),總結(jié)分析了selenium2.0中常用的python函數(shù)的功能、原理與基本用法,需要的朋友可以參考下2019-08-08Python圖像處理之圖像的讀取、顯示與保存操作【測(cè)試可用】
這篇文章主要介紹了Python圖像處理之圖像的讀取、顯示與保存操作,結(jié)合實(shí)例形式分析了Python使用PIL模塊、scipy和matplotlib模塊進(jìn)行圖像讀寫(xiě)、顯示等相關(guān)操作技巧,需要的朋友可以參考下2019-01-01使用Django實(shí)現(xiàn)把兩個(gè)模型類的數(shù)據(jù)聚合在一起
這篇文章主要介紹了使用Django實(shí)現(xiàn)把兩個(gè)模型類的數(shù)據(jù)聚合在一起,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03Python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的MySQL類
這篇文章主要介紹了Python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的MySQL類,可實(shí)現(xiàn)基本的初始化連接及查詢、刪除等功能,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-01-01Python找出最小的K個(gè)數(shù)實(shí)例代碼
這篇文章主要介紹了Python找出最小的K個(gè)數(shù)實(shí)例代碼,簡(jiǎn)單分析了實(shí)現(xiàn)思路,冒泡法和partition思想,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01