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进行数据提取的方法总结
Aug 22 Python
Python编程实现二叉树及七种遍历方法详解
Jun 02 Python
教你使用python画一朵花送女朋友
Mar 29 Python
在windows下Python打印彩色字体的方法
May 15 Python
python定向爬虫校园论坛帖子信息
Jul 23 Python
初次部署django+gunicorn+nginx的方法步骤
Sep 11 Python
python  ceiling divide 除法向上取整(或小数向上取整)的实例
Dec 27 Python
django3.02模板中的超链接配置实例代码
Feb 04 Python
解决Python pip 自动更新升级失败的问题
Feb 21 Python
Django-imagekit的使用详解
Jul 06 Python
python xlwt模块的使用解析
Apr 13 Python
Python 可迭代对象 iterable的具体使用
Aug 07 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 ob_flush,flush在ie中缓冲无效的解决方法
2010/05/09 PHP
利用PHP扩展vld查看PHP opcode操作步骤
2013/03/04 PHP
php基于mcrypt的加密解密实例
2014/10/27 PHP
浅析php创建者模式
2014/11/25 PHP
php实现Linux服务器木马排查及加固功能
2014/12/29 PHP
验证token、回复图文\文本、推送消息的实用微信类php代码
2016/06/28 PHP
php提交表单时保留多个空格及换行的文本样式的方法
2017/06/20 PHP
用jquery来定位
2007/02/20 Javascript
JS定时关闭窗口的实例
2013/05/22 Javascript
Extjs Label的 fieldLabel和html属性值对齐的方法
2014/06/15 Javascript
jQuery实现新消息在网页标题闪烁提示
2015/06/23 Javascript
js仿QQ中对联系人向左滑动、滑出删除按钮的操作
2016/04/07 Javascript
原生JavaScript制作计算器
2016/10/16 Javascript
JS判断是否手机或pad访问实现方法
2016/12/09 Javascript
nodejs基础知识
2017/02/03 NodeJs
纯JS实现图片验证码功能并兼容IE6-8(推荐)
2017/04/19 Javascript
nginx+vue.js实现前后端分离的示例代码
2018/02/12 Javascript
JS抛物线动画实例制作
2018/02/24 Javascript
js拖动滑块和点击水波纹效果实例代码
2018/10/16 Javascript
利用vue-i18n实现多语言切换效果的方法
2019/06/19 Javascript
JavaScript解析JSON数据示例
2019/07/16 Javascript
Vue实现附件上传功能
2020/05/28 Javascript
python实现ip查询示例
2014/03/26 Python
Python标准库与第三方库详解
2014/07/22 Python
python使用正则表达式替换匹配成功的组
2017/11/17 Python
pyqt5简介及安装方法介绍
2018/01/31 Python
java中两个byte数组实现合并的示例
2018/05/09 Python
Python FTP文件定时自动下载实现过程解析
2019/11/12 Python
Python垃圾回收机制三种实现方法
2020/04/27 Python
python实现图像高斯金字塔的示例代码
2020/12/11 Python
详解用selenium来下载小姐姐图片并保存
2021/01/26 Python
捐书活动总结
2014/05/04 职场文书
干部竞争上岗演讲稿
2014/09/11 职场文书
2015年财务部工作总结
2015/04/10 职场文书
sql注入教程之类型以及提交注入
2021/08/02 MySQL
Python3.10的一些新特性原理分析
2021/09/15 Python