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 匹配任意字符(包括换行符)的正则表达式写法
Oct 29 Python
Python实现抓取百度搜索结果页的网站标题信息
Jan 22 Python
Python的包管理器pip更换软件源的方法详解
Jun 20 Python
详解Python中表达式i += x与i = i + x是否等价
Feb 08 Python
安装Python和pygame及相应的环境变量配置(图文教程)
Jun 04 Python
Python定时任务sched模块用法示例
Jul 16 Python
在Python中将函数作为另一个函数的参数传入并调用的方法
Jan 22 Python
Python 70行代码实现简单算式计算器解析
Aug 30 Python
Python使用matplotlib绘制Logistic曲线操作示例
Nov 28 Python
Python语法垃圾回收机制原理解析
Mar 25 Python
浅谈tensorflow模型保存为pb的各种姿势
May 25 Python
改变 Python 中线程执行顺序的方法
Sep 24 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
索尼SONY ICF-SW7600GR电路分析与改良
2021/03/02 无线电
从MySQL数据库表中取出随机数据的代码
2007/09/05 PHP
PHP的几个常用数字判断函数代码
2012/04/24 PHP
PHP实现的折半查找算法示例
2017/12/19 PHP
php5.6.x到php7.0.x特性小结
2019/08/17 PHP
PHP实现本地图片转base64格式并上传
2020/05/29 PHP
对联广告js flash激活
2006/10/19 Javascript
js传值 判断
2006/10/26 Javascript
详细讲解JS节点知识
2010/01/31 Javascript
ToolTips JQEURY插件之简洁小提示框效果
2011/11/19 Javascript
javascript中IE浏览器不支持NEW DATE()带参数的解决方法
2012/03/01 Javascript
上传图片预览JS脚本 Input file图片预览的实现示例
2014/10/23 Javascript
PHP实现的各种中文编码转换类分享
2015/01/23 Javascript
JavaScript动态修改网页元素内容的方法
2015/03/21 Javascript
常用javascript表单验证汇总
2020/07/20 Javascript
JS实现按比例缩放图片的方法(附C#版代码)
2015/12/08 Javascript
javascript实现搜索筛选功能实例代码
2020/11/12 Javascript
小程序自定义弹框效果
2020/11/16 Javascript
[02:30]DOTA2英雄基础教程 暗影恶魔
2013/12/17 DOTA
Python3如何解决字符编码问题详解
2017/04/23 Python
浅谈Python2.6和Python3.0中八进制数字表示的区别
2017/04/28 Python
Python虚拟环境virtualenv的安装与使用详解
2017/05/28 Python
Python中sort和sorted函数代码解析
2018/01/25 Python
多个python文件调用logging模块报错误
2020/02/12 Python
用python实现前向分词最大匹配算法的示例代码
2020/08/06 Python
Python进行特征提取的示例代码
2020/10/15 Python
阿迪达斯墨西哥官方网站:adidas墨西哥
2017/11/03 全球购物
艺术用品:Arteza
2018/11/25 全球购物
学生会竞聘书范文
2014/03/31 职场文书
幼儿园开学寄语
2014/04/03 职场文书
法律专业自荐信
2014/06/03 职场文书
培训科主任岗位职责
2014/08/08 职场文书
毕业论文致谢部分怎么写
2015/05/14 职场文书
生活小常识广播稿
2015/08/19 职场文书
考教师资格证不要错过的4个最佳时机
2019/07/17 职场文书
Python基础详解之描述符
2021/04/28 Python