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之玩转字符串(2)更新篇
Sep 28 Python
Python创建文件和追加文件内容实例
Oct 21 Python
理解Python中的With语句
Mar 18 Python
Python实现桶排序与快速排序算法结合应用示例
Nov 22 Python
python Spyder界面无法打开的解决方法
Apr 27 Python
在linux系统下安装python librtmp包的实现方法
Jul 22 Python
Python类中的魔法方法之 __slots__原理解析
Aug 26 Python
python+selenium 点击单选框-radio的实现方法
Sep 03 Python
wxpython布局的实现方法
Nov 01 Python
python、PyTorch图像读取与numpy转换实例
Jan 13 Python
Keras 实现加载预训练模型并冻结网络的层
Jun 15 Python
Python中如何处理常见报错
Jan 18 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
让Nginx支持ThinkPHP的URL重写和PATHINFO的方法分享
2011/08/08 PHP
在windows服务器开启php的gd库phpinfo中未发现
2013/01/13 PHP
thinkPHP商城公告功能开发问题分析
2016/12/01 PHP
php 魔术常量详解及实例代码
2016/12/04 PHP
php制作圆形用户头像的实例_自定义封装类源代码
2017/09/18 PHP
PHP+MySQL高并发加锁事务处理问题解决方法
2018/04/30 PHP
Thinkphp整合阿里云OSS图片上传实例代码
2019/04/28 PHP
PHP连接SQL Server的方法分析【基于thinkPHP5.1框架】
2019/05/06 PHP
兼容FireFox 的 js 日历 支持时间的获取
2009/03/04 Javascript
火狐下table中创建form导致两个table之间出现空白
2013/09/02 Javascript
node.js中的console.timeEnd方法使用说明
2014/12/09 Javascript
微信小程序 动态的设置图片的高度和宽度详解及实例代码
2017/02/24 Javascript
微信小程序日期时间选择器使用方法
2018/02/01 Javascript
详解nuxt sass全局变量(公共scss解决方案)
2018/06/27 Javascript
jQuery 选择器用法实例分析【prev + next】
2020/05/22 jQuery
详解JavaScript作用域、作用域链和闭包的用法
2020/09/03 Javascript
小程序组件传值和引入sass的方法(使用vant Weapp组件库)
2020/11/24 Javascript
python3+PyQt5实现自定义窗口部件Counters
2018/04/20 Python
python设定并获取socket超时时间的方法
2019/01/12 Python
Python3按一定数据位数格式处理bin文件的方法
2019/01/24 Python
python3对拉勾数据进行可视化分析的方法详解
2019/04/03 Python
在交互式环境中执行Python程序过程详解
2019/07/12 Python
python函数修饰符@的使用方法解析
2019/09/02 Python
tensorflow 利用expand_dims和squeeze扩展和压缩tensor维度方式
2020/02/07 Python
如何在pycharm中安装第三方包
2020/10/27 Python
CSS3实现DIV圆角效果完整代码
2012/10/10 HTML / CSS
HTML5 video循环播放多个视频的方法步骤
2020/08/06 HTML / CSS
信息技术专业大学生个人的自我评价
2013/10/05 职场文书
房地产融资计划书
2014/01/10 职场文书
《陋室铭》教学反思
2014/02/26 职场文书
小学端午节活动方案
2014/03/13 职场文书
2014年“四风”问题个人整改措施
2014/09/17 职场文书
计划生育证明书写要求
2014/09/17 职场文书
幽灵公主观后感
2015/06/09 职场文书
关于国庆节的广播稿
2015/08/19 职场文书
高考百日冲刺决心书
2015/09/23 职场文书