PyQt5每天必學(xué)之彈出消息框
默認(rèn)情況下,如果我們點(diǎn)擊標(biāo)題欄上的 X 按鈕,QWidget 關(guān)閉。有時(shí)候,我們需要改變這個(gè)默認(rèn)行為。例如,如果我們有一個(gè)文件,要在編輯器中打開,我們可以先顯示一個(gè)消息框,確認(rèn)打開與否的操作。
#!/usr/bin/python3
# -*- coding: utf-8 -*-
"""
PyQt5 教程
當(dāng)我們點(diǎn)擊應(yīng)用程序窗口的關(guān)閉按鈕,該程序顯示一個(gè)確認(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)
我們顯示一個(gè)消息框,它有兩個(gè)按鈕:Yes和No。第一個(gè)字符串出現(xiàn)在標(biāo)題欄。第二個(gè)字符串是對話框中顯示的消息文本。第三個(gè)參數(shù)指定彈出的對話框中的按鈕組合。最后一個(gè)參數(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)文章
pytorch 實(shí)現(xiàn)打印模型的參數(shù)值
今天小編就為大家分享一篇pytorch 實(shí)現(xiàn)打印模型的參數(shù)值,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12
Python實(shí)現(xiàn)發(fā)送帶有pdf附件的電子郵件
使用Python發(fā)郵件,是個(gè)簡單的話題,可是如何可以優(yōu)雅的輕松的群發(fā)郵件,并附加PDF附件,是很多小伙伴的日常工作。本文就來和大家分享一下實(shí)現(xiàn)方法,需要的可以參考一下2023-02-02
pycharm 設(shè)置項(xiàng)目的根目錄教程
今天小編就為大家分享一篇pycharm 設(shè)置項(xiàng)目的根目錄教程,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02
python?pygame實(shí)現(xiàn)控制物體移動
這篇文章主要為大家詳細(xì)介紹了python?pygame控制物體移動,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
Python環(huán)境隔離實(shí)戰(zhàn)之venv/virtualenv與conda的差異與最佳實(shí)踐
Python虛擬環(huán)境到底是什么,它如何隔離依賴并工作,在實(shí)際開發(fā)中,我們該如何創(chuàng)建、使用和切換環(huán)境,以避免版本沖突,下面小編就帶大家深入了解一下吧2025-08-08

