PyQt5每天必学之弹出消息框


Posted in Python onApril 19, 2018

默认情况下,如果我们点击标题栏上的 X 按钮,QWidget 关闭。有时候,我们需要改变这个默认行为。例如,如果我们有一个文件,要在编辑器中打开,我们可以先显示一个消息框,确认打开与否的操作。

#!/usr/bin/python3
# -*- coding: utf-8 -*-

"""
PyQt5 教程

当我们点击应用程序窗口的关闭按钮,该程序显示一个确认信息框。

作者:我的世界你曾经来过
博客: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, '信息', '确认退出吗?', 
   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_())

如果我们关闭 QWidget控件,将产生 QCloseEvent 事件。修改控件特性我们需要重新实现 closeEvent() 事件处理程序。

reply = QMessageBox.question(self, '信息', '确认退出吗?', 
   QMessageBox.Yes | QMessageBox.No, QMessageBox.No)

我们显示一个消息框,它有两个按钮:Yes和No。第一个字符串出现在标题栏。第二个字符串是对话框中显示的消息文本。第三个参数指定弹出的对话框中的按钮组合。最后一个参数是默认按钮,它是具有初始键盘焦点的按钮。返回值被存储在reply 变量中。

if reply == QMessageBox.Yes:
   event.accept()
  else:
   event.ignore()

在这里我们使用 if 测试返回值。如果我们点击 Yes 按钮,我们接受了按钮控件的关闭并执行应用程序的终止事件。否则,我们忽略关闭事件。

程序执行后点击右上角的 x 弹出确认退出消息盒子

PyQt5每天必学之弹出消息框PyQt5每天必学之弹出消息框

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python数据结构之二叉树的统计与转换实例
Apr 29 Python
Python编写屏幕截图程序方法
Feb 18 Python
Python多线程编程(三):threading.Thread类的重要函数和方法
Apr 05 Python
用Python创建声明性迷你语言的教程
Apr 13 Python
Python语言生成水仙花数代码示例
Dec 18 Python
Python机器学习logistic回归代码解析
Jan 17 Python
基于Python中求和函数sum的用法详解
Jun 28 Python
python设置值及NaN值处理方法
Jul 03 Python
Django获取应用下的所有models的例子
Aug 30 Python
PyCharm2020.1.1与Python3.7.7的安装教程图文详解
Aug 07 Python
15款Python编辑器的优缺点,别再问我“选什么编辑器”啦
Oct 19 Python
python scipy 稀疏矩阵的使用说明
May 26 Python
详谈python3中用for循环删除列表中元素的坑
Apr 19 #Python
PyQt5每天必学之关闭窗口
Apr 19 #Python
python实现在IDLE中输入多行的方法
Apr 19 #Python
python贪婪匹配以及多行匹配的实例讲解
Apr 19 #Python
PyQt5每天必学之工具提示功能
Apr 19 #Python
PyQt5每天必学之QSplitter实现窗口分隔
Apr 19 #Python
python 读入多行数据的实例
Apr 19 #Python
You might like
提高define性能的php扩展hidef的安装和使用
2011/06/14 PHP
php模板原理讲解
2013/11/13 PHP
yii实现创建验证码实例解析
2014/07/31 PHP
ThinkPHP实现简单登陆功能
2017/04/28 PHP
PHP实现的简单AES加密解密算法实例
2017/05/29 PHP
基于jquery+thickbox仿校内登录注册框
2010/06/07 Javascript
js判断上传文件类型判断FileUpload文件类型代码
2014/05/20 Javascript
详述JavaScript实现继承的几种方式(推荐)
2016/03/22 Javascript
jQuery获取父元素及父节点的方法小结
2016/04/14 Javascript
jQuery属性选择器用法示例
2016/09/09 Javascript
jQuery日程管理插件fullcalendar使用详解
2017/01/07 Javascript
jQuery中Datatables增加跳转到指定页功能
2017/02/08 Javascript
H5实现仿flash效果的实现代码
2017/09/29 Javascript
基于js中this和event 的区别(详解)
2017/10/24 Javascript
浅谈es6 javascript的map数据结构
2017/12/14 Javascript
基于Vue的ajax公共方法(详解)
2018/01/20 Javascript
深入浅析Vue.js计算属性和侦听器
2018/05/05 Javascript
一篇文章介绍redux、react-redux、redux-saga总结
2019/05/23 Javascript
JS localStorage存储对象,sessionStorage存储数组对象操作示例
2020/02/15 Javascript
在Webpack中用url-loader处理图片和字体的问题
2020/04/28 Javascript
javascript实现简易计算器功能
2020/09/23 Javascript
[02:44]完美大师赛主赛事淘汰赛第二日观众采访
2017/11/24 DOTA
python函数参数*args**kwargs用法实例
2013/12/04 Python
Python selenium 三种等待方式解读
2016/09/15 Python
Python面向对象程序设计之继承与多继承用法分析
2018/07/13 Python
深入浅析css3 中display box使用方法
2015/11/25 HTML / CSS
eVitamins日本:在线购买折扣维生素、补品和草药
2019/04/04 全球购物
乌克兰网上珠宝商店:GoldSoveren
2020/03/31 全球购物
店长助理岗位职责
2013/12/13 职场文书
竞聘副主任科员演讲稿
2014/01/11 职场文书
重阳节登山活动方案
2014/02/03 职场文书
办公室主任主任岗位责任制
2014/02/11 职场文书
诚信考试标语
2014/06/24 职场文书
2014年行政人事工作总结
2014/12/09 职场文书
九寨沟导游词
2015/02/02 职场文书
繁星春水读书笔记
2015/06/30 职场文书