您的位置:首页 > 编程语言 > Qt开发

PyQt5:消息窗口(5)

2016-06-01 00:04 573 查看
学习《PyQt4入门指南 PDF中文版.pdf 》笔记



#!/usr/bin/python
# messagebox.py

from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QMessageBox

class MessageBox(QtWidgets.QWidget):
def __init__(self, parent = None):
QtWidgets.QWidget.__init__(self, parent)

self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('Message Box')

def closeEvent(self, event):
reply = QMessageBox.question(self, 'Message',
"Are you sure to quit?", QMessageBox.Yes, QMessageBox.No)
if reply == QMessageBox.Yes: event.accept() else: event.ignore()
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
msgBox = MessageBox()
msgBox.show()
sys.exit(app.exec_())


如果我们关闭QWidget窗口,QCloseEvent事件就会被触发。要改变原有的Widget行为阻止该窗口的关闭,我们就需要重新实现closeEvent()方法。    

reply= QMessageBox.question(self, 'Message',

"Are you sure to quit?", QMessageBox.Yes, QMessageBox.No)         通过上面的语句我们可以显示一个带有两个按钮(Yes/No)的消息窗口。第一个字符串参数'Message'在消息窗口的标题栏显示。第二个字符串参数以对话的形式显示在消息窗口中。返回的结果被保存在reply变量中。        
if reply == QMessageBox.Yes:
event.accept()
else:
event.ignore()
         我们使用上面的if语句来判断用户选择的结果。如果用户选择了Yes按钮,那么关闭widget窗口并终止应用程序的动作会被允许执行。否则,关闭窗口的动作会被忽略。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: