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 24 Python
python爬虫入门教程--利用requests构建知乎API(三)
May 25 Python
分享一个可以生成各种进制格式IP的小工具实例代码
Jul 28 Python
Python简单定义与使用二叉树示例
May 11 Python
Python常见内置高效率函数用法示例
Jul 31 Python
Python中psutil的介绍与用法
May 02 Python
详解python函数的闭包问题(内部函数与外部函数详述)
May 17 Python
python内存监控工具memory_profiler和guppy的用法详解
Jul 29 Python
Pytorch实现的手写数字mnist识别功能完整示例
Dec 13 Python
Python图像处理库PIL的ImageEnhance模块使用介绍
Feb 26 Python
pytorch随机采样操作SubsetRandomSampler()
Jul 07 Python
基于Python爬取51cto博客页面信息过程解析
Aug 25 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 array_slice函数的使用以及参数详解
2008/08/30 PHP
Discuz 模板语句分析及知识技巧
2009/08/21 PHP
php警告Creating default object from empty value 问题的解决方法
2014/04/02 PHP
PHP生成随机数的方法实例分析
2015/01/22 PHP
PHP中使用curl入门教程
2015/07/02 PHP
CI框架数据库查询之join用法分析
2016/05/18 PHP
PHP仿微信发红包领红包效果
2016/10/30 PHP
Wordpress ThickBox 点击图片显示下一张图的修改方法
2010/12/11 Javascript
判断及设置浏览器全屏模式
2014/04/20 Javascript
面向切面编程(AOP)的理解
2015/05/01 Javascript
Nodejs实现批量下载妹纸图
2015/05/28 NodeJs
JavaScript图像延迟加载库Echo.js
2016/04/05 Javascript
JS动态插入并立即执行回调函数的方法
2016/04/21 Javascript
vue select二级联动第二级默认选中第一个option值的实例
2018/01/10 Javascript
React Native使用fetch实现图片上传的示例代码
2018/03/07 Javascript
vue2.0 资源文件assets和static的区别详解
2018/04/08 Javascript
使用 Vue 实现一个虚拟列表的方法
2019/08/20 Javascript
详解Webpack4多页应用打包方案
2020/07/16 Javascript
JS禁用右键、禁用Ctrl+u、禁用Ctrl+s、禁用F12的实现代码
2020/12/01 Javascript
[54:25]Ti4 循环赛第三日LGD vs MOUZ
2014/07/12 DOTA
Python MySQLdb模块连接操作mysql数据库实例
2015/04/08 Python
Python的Socket编程过程中实现UDP端口复用的实例分享
2016/03/19 Python
Python3.6正式版新特性预览
2016/12/15 Python
Python日期的加减等操作的示例
2017/08/15 Python
ubuntu环境下python虚拟环境的安装过程
2018/01/07 Python
Python基础之循环语句用法示例【for、while循环】
2019/03/23 Python
Python3实现mysql连接和数据框的形成(实例代码)
2020/01/17 Python
python实现自动打卡的示例代码
2020/10/10 Python
基于Python-Pycharm实现的猴子摘桃小游戏(源代码)
2021/02/20 Python
阿拉伯世界最大的电子商务网站:Souq沙特阿拉伯
2016/10/28 全球购物
美国奢侈品购物平台:Orchard Mile
2018/05/02 全球购物
党风廉政建设责任书
2014/04/14 职场文书
《记金华的双龙洞》教学反思
2014/04/19 职场文书
2014年银行信贷员工作总结
2014/12/08 职场文书
2015年度信用社工作总结
2015/05/04 职场文书
小学科学课教学反思
2016/02/23 职场文书