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计算N天之后日期的方法
Mar 31 Python
Python 遍历列表里面序号和值的方法(三种)
Feb 17 Python
Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
Mar 19 Python
python实现百度语音识别api
Apr 10 Python
由面试题加深对Django的认识理解
Jul 19 Python
python模块导入的方法
Oct 24 Python
Python嵌套函数,作用域与偏函数用法实例分析
Dec 26 Python
基于Python和C++实现删除链表的节点
Jul 06 Python
PyCharm+PyQt5+QtDesigner配置详解
Aug 12 Python
基于python获取本地时间并转换时间戳和日期格式
Oct 27 Python
使用Python+OpenCV进行卡类型及16位卡号数字的OCR功能
Aug 30 Python
Python OpenCV超详细讲解读取图像视频和网络摄像头
Apr 02 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获取数组元素中头一个数组元素值的实现方法
2014/12/20 PHP
php修改上传图片尺寸的方法
2015/04/14 PHP
php生成curl命令行的方法
2015/12/14 PHP
php 判断过去离现在几年的函数(实例代码)
2016/11/15 PHP
php 变量引用与变量销毁机制详细介绍
2016/12/05 PHP
怎么让脚本或里面的函数在所有图片都载入完毕的时候执行
2006/10/17 Javascript
Extjs ajax同步请求时post方式参数发送方式
2009/08/05 Javascript
JQuery动态给table添加、删除行 改进版
2011/01/19 Javascript
js jquery ajax的几种用法总结(及优缺点介绍)
2014/01/28 Javascript
Jquery实现侧边栏跟随滚动条固定(兼容IE6)
2014/04/02 Javascript
jQuery javascript获得网页的高度与宽度的实现代码
2016/04/26 Javascript
详解JS异步加载的三种方式
2017/03/07 Javascript
详解Vue监听数据变化原理
2017/03/08 Javascript
vue.js实现含搜索的多种复选框(附源码)
2017/03/23 Javascript
解决BootStrap Fileinput手机图片上传显示旋转问题
2017/06/01 Javascript
vue 自定义组件 v-model双向绑定、 父子组件同步通信的多种写法
2017/11/27 Javascript
layui-table表复选框勾选的所有行数据获取的例子
2019/09/13 Javascript
layer插件实现在弹出层中弹出一警告提示并关闭弹出层的方法
2019/09/24 Javascript
VueCli4项目配置反向代理proxy的方法步骤
2020/05/17 Javascript
springboot+vue实现文件上传下载
2020/11/17 Vue.js
Python中使用语句导入模块或包的机制研究
2015/03/30 Python
Python多进程分块读取超大文件的方法
2016/04/13 Python
Python使用win32com实现的模拟浏览器功能示例
2017/07/13 Python
Python企业编码生成系统之主程序模块设计详解
2019/07/26 Python
python 计算两个列表的相关系数的实现
2019/08/29 Python
python网络爬虫 Scrapy中selenium用法详解
2019/09/28 Python
HTML5 script元素async、defer异步加载使用介绍
2013/08/23 HTML / CSS
世界上最好的帽子:Tilley
2016/11/27 全球购物
名词解释WEB SERVICE,SOAP,UDDI,WSDL,JAXP,JAXM;JSWDL开发包的介绍。
2012/10/27 面试题
简述数组与指针的区别
2014/01/02 面试题
英语演讲稿3分钟
2014/04/29 职场文书
学生检讨书怎么写?
2014/10/10 职场文书
医生见习报告范文
2014/11/03 职场文书
2015年普法依法治理工作总结
2015/05/26 职场文书
2019终止劳动合同协议书最新范本!
2019/07/09 职场文书
导游词之贵州织金洞
2019/10/12 职场文书