PyQt5每天必學(xué)之彈出消息框
默認(rèn)情況下,如果我們點(diǎn)擊標(biāo)題欄上的 X 按鈕,QWidget 關(guān)閉。有時候,我們需要改變這個默認(rèn)行為。例如,如果我們有一個文件,要在編輯器中打開,我們可以先顯示一個消息框,確認(rèn)打開與否的操作。
#!/usr/bin/python3 # -*- coding: utf-8 -*- """ PyQt5 教程 當(dāng)我們點(diǎn)擊應(yīng)用程序窗口的關(guān)閉按鈕,該程序顯示一個確認(rèn)信息框。 作者:我的世界你曾經(jīng)來過 博客:http://blog.csdn.net/weiaitaowang 最后編輯:2016年7月29日 """ import sys from PyQt5.QtWidgets import QApplication, QWidget, QMessageBox class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setGeometry(300, 300, 300, 220) self.setWindowTitle('消息盒子') self.show() def closeEvent(self, event): reply = QMessageBox.question(self, '信息', '確認(rèn)退出嗎?', QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if reply == QMessageBox.Yes: event.accept() else: event.ignore() if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_())
如果我們關(guān)閉 QWidget控件,將產(chǎn)生 QCloseEvent 事件。修改控件特性我們需要重新實(shí)現(xiàn) closeEvent() 事件處理程序。
reply = QMessageBox.question(self, '信息', '確認(rèn)退出嗎?', QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
我們顯示一個消息框,它有兩個按鈕:Yes和No。第一個字符串出現(xiàn)在標(biāo)題欄。第二個字符串是對話框中顯示的消息文本。第三個參數(shù)指定彈出的對話框中的按鈕組合。最后一個參數(shù)是默認(rèn)按鈕,它是具有初始鍵盤焦點(diǎn)的按鈕。返回值被存儲在reply 變量中。
if reply == QMessageBox.Yes: event.accept() else: event.ignore()
在這里我們使用 if 測試返回值。如果我們點(diǎn)擊 Yes 按鈕,我們接受了按鈕控件的關(guān)閉并執(zhí)行應(yīng)用程序的終止事件。否則,我們忽略關(guān)閉事件。
程序執(zhí)行后點(diǎn)擊右上角的 x 彈出確認(rèn)退出消息盒子
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
tensorflow學(xué)習(xí)筆記之簡單的神經(jīng)網(wǎng)絡(luò)訓(xùn)練和測試
這篇文章主要為大家詳細(xì)介紹了tensorflow學(xué)習(xí)筆記,用簡單的神經(jīng)網(wǎng)絡(luò)來訓(xùn)練和測試,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-04-04Python腳本判斷 Linux 是否運(yùn)行在虛擬機(jī)上
這篇文章主要介紹了Python腳本判斷 Linux 是否運(yùn)行在虛擬機(jī)上,本文講解了判斷 OpenVZ/Xen PV/UML、判斷 VMware/Xen HVM/KVM、判斷 VirtualBox/Virtual PC等方法,需要的朋友可以參考下2015-04-04Python爬蟲實(shí)戰(zhàn)演練之采集糗事百科段子數(shù)據(jù)
讀萬卷書不如行萬里路,只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用Python采集糗事百科段子的數(shù)據(jù),大家可以在過程中查缺補(bǔ)漏,提升水平2021-10-10python 實(shí)用工具狀態(tài)機(jī)transitions
這篇文章主要介紹了python 實(shí)用工具狀態(tài)機(jī)transitions的使用,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下2020-11-11Python協(xié)程的四種實(shí)現(xiàn)方式總結(jié)
今天繼續(xù)給大家介紹Python關(guān)知識,本文主要內(nèi)容是Python協(xié)程的四種實(shí)現(xiàn)方式。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-01-01