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配置文件解析模块ConfigParser使用实例
Apr 13 Python
使用Mixin设计模式进行Python编程的方法讲解
Jun 21 Python
python实现随机漫步方法和原理
Jun 10 Python
Python跳出多重循环的方法示例
Jul 03 Python
Python 点击指定位置验证码破解的实现代码
Sep 11 Python
python 哈希表实现简单python字典代码实例
Sep 27 Python
Python TCPServer 多线程多客户端通信的实现
Dec 31 Python
python中提高pip install速度
Feb 14 Python
Python日志器使用方法及原理解析
Sep 27 Python
python switch 实现多分支选择功能
Dec 21 Python
详解Python模块化编程与装饰器
Jan 16 Python
你喜欢篮球吗?Python实现篮球游戏
Jun 11 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
PHP为表单获取的URL 地址预设 http 字符串函数代码
2010/05/26 PHP
PHP模块 Memcached功能多于Memcache
2011/06/14 PHP
php加密解密函数authcode的用法详细解析
2013/10/28 PHP
PHP文件操作方法汇总
2015/07/01 PHP
PHP常用函数之获取汉字首字母功能示例
2019/10/21 PHP
Gambit vs CL BO3 第二场 2.13
2021/03/10 DOTA
JavaScript按位运算符的应用简析
2014/02/04 Javascript
extjs每个组件要设置唯一的ID否则会出错
2014/06/15 Javascript
JavaScript语言精粹经典实例(整理篇)
2016/06/07 Javascript
JavaScript判断是否是微信浏览器
2016/06/13 Javascript
后端接收不到AngularJs中$http.post发送的数据原因分析及解决办法
2016/07/05 Javascript
js鼠标单击和双击事件冲突问题的快速解决方法
2016/07/11 Javascript
Bootstrap基本插件学习笔记之按钮(21)
2016/12/08 Javascript
jQuery中页面返回顶部的方法总结
2016/12/30 Javascript
laydate.js日期时间选择插件
2017/01/04 Javascript
浅谈js停止事件冒泡 阻止浏览器的默认行为(阻止超连接 #)
2017/02/08 Javascript
JS原生带小白点轮播图实例讲解
2017/07/22 Javascript
JS实现获取当前所在周的周六、周日示例分析
2019/05/11 Javascript
JavaScript 实现拖拽效果组件功能(兼容移动端)
2020/11/11 Javascript
Python获取Linux系统下的本机IP地址代码分享
2014/11/07 Python
Python列表生成器的循环技巧分享
2015/03/06 Python
在Python的Flask框架中实现单元测试的教程
2015/04/20 Python
Python矩阵常见运算操作实例总结
2017/09/29 Python
python版飞机大战代码分享
2018/11/20 Python
Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】
2019/03/30 Python
Python使用scipy模块实现一维卷积运算示例
2019/09/05 Python
Python hashlib加密模块常用方法解析
2019/12/18 Python
Django如何使用jwt获取用户信息
2020/04/21 Python
python爬虫线程池案例详解(梨视频短视频爬取)
2021/02/20 Python
德国骆驼商店:ActiveFashionWorld
2017/11/18 全球购物
学习优秀党务工作者先进事迹材料思想报告
2014/09/17 职场文书
2014年英语教学工作总结
2014/12/17 职场文书
2015年度培训工作总结范文
2015/04/02 职场文书
详解MySQL事务的隔离级别与MVCC
2021/04/22 MySQL
将图片保存到mysql数据库并展示在前端页面的实现代码
2021/05/02 MySQL
python实现局部图像放大
2021/11/17 Python