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抽象基类用法实例分析
Jun 04 Python
Python 内置函数memoryview(obj)的具体用法
Nov 23 Python
详解Python核心编程中的浅拷贝与深拷贝
Jan 07 Python
python微信跳一跳游戏辅助代码解析
Jan 29 Python
对numpy.append()里的axis的用法详解
Jun 28 Python
Python使用matplotlib绘制随机漫步图
Aug 27 Python
Python中list的交、并、差集获取方法示例
Aug 01 Python
python计算无向图节点度的实例代码
Nov 22 Python
python interpolate插值实例
Jul 06 Python
一文带你了解Python 四种常见基础爬虫方法介绍
Dec 04 Python
python快速安装OpenCV的步骤记录
Feb 22 Python
Python Spyder 调出缩进对齐线的操作
Feb 26 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
十大“创意”战术!
2020/03/04 星际争霸
第十二节 类的自动加载 [12]
2006/10/09 PHP
php下载远程文件类(支持断点续传)
2008/11/14 PHP
PHP与MYSQL中UTF8 中文排序示例代码
2014/10/23 PHP
PHP实用函数分享之去除多余的0
2015/02/06 PHP
PHP判断访客是否手机端(移动端浏览器)访问的方法总结【4种方法】
2019/03/27 PHP
Prototype使用指南之form.js
2007/01/10 Javascript
对xmlHttp对象的理解
2011/01/17 Javascript
js数值计算时使用parseInt进行数据类型转换(jquery)
2014/10/07 Javascript
jQuery设置和移除文本框默认值的方法
2015/03/09 Javascript
JavaScript的removeChild()函数用法详解
2015/12/27 Javascript
js判断鼠标位置是否在某个div中的方法
2016/02/26 Javascript
原生JS封装ajax 传json,str,excel文件上传提交表单(推荐)
2016/06/21 Javascript
深入理解AngularJS中的ng-bind-html指令和$sce服务
2016/09/08 Javascript
Javascript for in的缺陷总结
2017/02/03 Javascript
vue实现表格增删改查效果的实例代码
2017/07/18 Javascript
vue.js单文件组件中非父子组件的传值实例
2018/09/13 Javascript
新手快速上手webpack4打包工具的使用详解
2019/01/28 Javascript
再也不怕 JavaScript 报错了,怎么看怎么处理都在这儿
2020/12/09 Javascript
[51:17]完美世界DOTA2联赛循环赛Inki vs DeMonsTer 第二场 10月30日
2020/10/31 DOTA
python3实现163邮箱SMTP发送邮件
2018/05/22 Python
如何用Python制作微信好友个性签名词云图
2019/06/28 Python
Python 中@property的用法详解
2020/01/15 Python
Pycharm安装并配置jupyter notebook的实现
2020/05/18 Python
西班牙最大的在线滑板和街头服饰商店:Fillow.net
2019/04/15 全球购物
澳大利亚设计师服装在线:MISHA
2019/10/07 全球购物
军训自我鉴定范文
2014/02/13 职场文书
公司租车协议书
2015/01/29 职场文书
学习焦裕禄观后感
2015/06/09 职场文书
冰雪公主观后感
2015/06/16 职场文书
关于感恩老师的古诗句
2019/08/20 职场文书
导游词之泉州崇武古城
2019/12/20 职场文书
配置nginx 重定向到系统维护页面
2021/06/08 Servers
SpringBoot实现异步事件驱动的方法
2021/06/28 Java/Android
SQL IDENTITY_INSERT作用案例详解
2021/08/23 MySQL
JavaScript实现简单拖拽效果
2021/09/15 Javascript