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实现向QQ群成员自动发邮件的方法
Nov 19 Python
快速了解Python相对导入
Jan 12 Python
python爬虫中get和post方法介绍以及cookie作用
Feb 08 Python
pyhton列表转换为数组的实例
Apr 04 Python
Django学习教程之静态文件的调用详解
May 08 Python
flask入门之文件上传与邮件发送示例
Jul 18 Python
利用python将图片版PDF转文字版PDF
May 03 Python
python基于K-means聚类算法的图像分割
Oct 30 Python
基于python plotly交互式图表大全
Dec 07 Python
python使用Geany编辑器配置方法
Feb 21 Python
python和JavaScript哪个容易上手
Jun 23 Python
TensorFlow低版本代码自动升级为1.0版本
Feb 20 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
phpMyAdmin 安装配置方法和问题解决
2009/06/08 PHP
过滤掉PHP数组中的重复值的实现代码
2011/07/17 PHP
thinkphp循环结构用法实例
2014/11/24 PHP
基于ThinkPHP+uploadify+upload+PHPExcel 无刷新导入数据
2015/09/23 PHP
10个值得深思的PHP面试题
2016/11/14 PHP
php5.5使用PHPMailer-5.2发送邮件的完整步骤
2018/10/14 PHP
jquery DOM操作 基于命令改变页面
2010/05/06 Javascript
js中top的作用深入剖析
2014/03/04 Javascript
构造函数+原型模式构造js自定义对象(最通用)
2014/05/12 Javascript
js实现用户注册协议倒计时的方法
2015/01/21 Javascript
使用nodejs开发cli项目实例
2015/06/03 NodeJs
js判断空对象的实例(超简单)
2016/07/26 Javascript
Javascript生成带参数的二维码示例
2016/10/10 Javascript
AngularJS实现根据变量改变动态加载模板的方法
2016/11/04 Javascript
对VUE中的对象添加属性
2018/09/18 Javascript
Vue触发式全局组件构建的方法
2018/11/28 Javascript
JavaScript函数的特性与应用实践深入详解
2018/12/30 Javascript
Vue中JS动画与Velocity.js的结合使用
2019/02/13 Javascript
webpack-mvc 传统多页面组件化开发详解
2019/05/07 Javascript
js单线程的本质 Event Loop解析
2019/10/29 Javascript
jQuery中event.target和this的区别详解
2020/08/13 jQuery
[48:22]VGJ.S vs VG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
关于Python中空格字符串处理的技巧总结
2017/08/10 Python
python的schedule定时任务模块二次封装方法
2019/02/19 Python
基于python的itchat库实现微信聊天机器人(推荐)
2019/10/29 Python
学会迭代器设计模式,帮你大幅提升python性能
2021/01/03 Python
Clearly澳大利亚:购买眼镜、太阳镜和隐形眼镜
2018/04/26 全球购物
大学生两会精神学习心得体会
2014/03/10 职场文书
环保志愿者活动总结
2014/06/27 职场文书
建筑横幅标语
2014/10/09 职场文书
2014个人年度工作总结范文
2014/12/24 职场文书
政工师工作总结2015
2015/05/26 职场文书
英雄儿女观后感
2015/06/09 职场文书
2019最新版试用期劳动合同模板!
2019/07/04 职场文书
Python爬虫基础初探selenium
2021/05/31 Python
剖析后OpLog订阅MongoDB的数据变更就没那么难了
2022/02/24 MongoDB