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中的tkinter模块作图的方法
Feb 07 Python
Python的argparse库使用详解
Oct 09 Python
Python lambda表达式用法实例分析
Dec 25 Python
selenium+python自动化测试之多窗口切换
Jan 23 Python
python实现顺时针打印矩阵
Mar 02 Python
python使用Plotly绘图工具绘制水平条形图
Mar 25 Python
Python 串口读写的实现方法
Jun 12 Python
pandas中DataFrame修改index、columns名的方法示例
Aug 02 Python
Pytorch 多维数组运算过程的索引处理方式
Dec 27 Python
python使用matplotlib绘制折线图的示例代码
Sep 22 Python
Python中使用aiohttp模拟服务器出现错误问题及解决方法
Oct 31 Python
Python Numpy库的超详细教程
Apr 06 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
解析CI的AJAX分页 另类实现方法
2013/06/27 PHP
php中count获取多维数组长度的方法
2014/11/03 PHP
ExtJS 入门
2010/10/29 Javascript
JavaScript 字符串处理函数使用小结
2010/12/02 Javascript
关于javascript模块加载技术的一些思考
2014/11/28 Javascript
javascript实现全局匹配并替换的方法
2015/04/27 Javascript
详解vue-validator(vue验证器)
2017/01/16 Javascript
angular.JS实现网页禁用调试、复制和剪切
2017/03/31 Javascript
关于JavaScript中forEach和each用法浅析
2017/07/27 Javascript
vuex state中的数组变化监听实例
2019/11/06 Javascript
JS实现音乐钢琴特效
2020/01/06 Javascript
Js实现复选框的全选、全不选反选功能代码实例
2020/02/28 Javascript
JavaScript中继承原理与用法实例入门
2020/05/09 Javascript
小程序富文本提取图片可放大缩小
2020/05/26 Javascript
JavaScript中数组去重的5种方法
2020/07/04 Javascript
用Python制作在地图上模拟瘟疫扩散的Gif图
2015/03/31 Python
怎样使用Python脚本日志功能
2016/08/14 Python
python flask实现分页效果
2017/06/27 Python
VSCode下好用的Python插件及配置
2018/04/06 Python
使用pandas读取csv文件的指定列方法
2018/04/21 Python
django从请求到响应的过程深入讲解
2018/08/01 Python
学习和使用python的13个理由
2019/07/30 Python
jupyter修改文件名方式(TensorFlow)
2020/04/21 Python
CSS3 函数技巧 用css 实现js实现的事情(clac Counters Tooltip)
2017/08/15 HTML / CSS
HTML高亮关键字的实现代码
2018/10/22 HTML / CSS
美国顶级户外凉鞋品牌:Chacos
2017/03/27 全球购物
惠普新加坡官方商店:HP Singapore
2020/04/17 全球购物
北美最大的参茸药食商城:德成行
2020/12/06 全球购物
酒店服务与管理毕业生求职信
2013/11/02 职场文书
拖鞋店创业计划书
2014/01/15 职场文书
致接力运动员广播稿
2014/02/17 职场文书
《蚂蚁和蝈蝈》教学反思
2014/02/24 职场文书
挂牌仪式策划方案
2014/05/18 职场文书
2014幼儿园大班工作总结
2014/11/10 职场文书
现实表现证明材料
2015/06/19 职场文书
2015年环卫处个人工作总结
2015/07/27 职场文书