PyQt5 closeEvent关闭事件退出提示框原理解析


Posted in Python onJanuary 08, 2020

这篇文章主要介绍了PyQt5 closeEvent关闭事件退出提示框原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

如果关闭QWidget,就会产生一个QCloseEvent,并且把它传入到closeEvent函数的event参数中。改变控件的默认行为,就是替换掉默认的事件处理。

原生的英文提示框:

PyQt5 closeEvent关闭事件退出提示框原理解析

# 添加一个退出的提示事件
  def closeEvent(self, event):
    """我们创建了一个消息框,上面有俩按钮:Yes和No.第一个字符串显示在消息框的标题栏,第二个字符串显示在对话框,
          第三个参数是消息框的俩按钮,最后一个参数是默认按钮,这个按钮是默认选中的。返回值在变量reply里。"""
    
    reply = QMessageBox.question(self, 'Message',"Are you sure to quit?",
                   QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
    # 判断返回值,如果点击的是Yes按钮,我们就关闭组件和应用,否则就忽略关闭事件
    if reply == QMessageBox.Yes:
      event.accept()
    else:
      event.ignore()

修改成中文样式:

PyQt5 closeEvent关闭事件退出提示框原理解析

# 添加中文的确认退出提示框1
  def closeEvent(self, event):
    # 创建一个消息盒子(提示框)
    quitMsgBox = QMessageBox()
    # 设置提示框的标题
    quitMsgBox.setWindowTitle('确认提示')
    # 设置提示框的内容
    quitMsgBox.setText('你确认退出吗?')
    # 设置按钮标准,一个yes一个no
    quitMsgBox.setStandardButtons(QMessageBox.Yes | QMessageBox.No)
    # 获取两个按钮并且修改显示文本
    buttonY = quitMsgBox.button(QMessageBox.Yes)
    buttonY.setText('确定')
    buttonN = quitMsgBox.button(QMessageBox.No)
    buttonN.setText('取消')
    quitMsgBox.exec_()
    # 判断返回值,如果点击的是Yes按钮,我们就关闭组件和应用,否则就忽略关闭事件
    if quitMsgBox.clickedButton() == buttonY:
      event.accept()
    else:
      event.ignore()
# 添加中文的退出提示框2
  def closeEvent(self, event):
    # 创建一个消息盒子(提示框)
    quitMsgBox = QMessageBox()
    # 设置提示框的标题
    quitMsgBox.setWindowTitle('确认窗口')
    # 设置提示框的内容
    quitMsgBox.setText('你确定退出吗?')
    # 创建两个点击的按钮,修改文本显示内容
    buttonY = QPushButton('确定')
    buttonN = QPushButton('取消')
    # 将两个按钮加到这个消息盒子中去,并指定yes和no的功能
    quitMsgBox.addButton(buttonY, QMessageBox.YesRole)
    quitMsgBox.addButton(buttonN, QMessageBox.NoRole)
    quitMsgBox.exec_()
    # 判断返回值,如果点击的是Yes按钮,我们就关闭组件和应用,否则就忽略关闭事件
    if quitMsgBox.clickedButton() == buttonY:
      event.accept()
    else:
      event.ignore()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
django框架如何集成celery进行开发
May 24 Python
python logging日志模块的详解
Oct 29 Python
对numpy中向量式三目运算符详解
Oct 31 Python
python使用Turtle库绘制动态钟表
Nov 19 Python
对Python 获取类的成员变量及临时变量的方法详解
Jan 22 Python
python利用7z批量解压rar的实现
Aug 07 Python
解决jupyter notebook 前面书写后面内容消失的问题
Apr 13 Python
tensorflow实现残差网络方式(mnist数据集)
May 26 Python
Python 远程开关机的方法
Nov 18 Python
如何用 Python 制作 GitHub 消息助手
Feb 20 Python
基于Python实现对比Exce的工具
Apr 07 Python
Python使用MapReduce进行简单的销售统计
Apr 22 Python
python从内存地址上加载python对象过程详解
Jan 08 #Python
PyCharm第一次安装及使用教程
Jan 08 #Python
Python namedtuple命名元组实现过程解析
Jan 08 #Python
Pytorch基本变量类型FloatTensor与Variable用法
Jan 08 #Python
python pycharm最新版本激活码(永久有效)附python安装教程
Sep 18 #Python
pytorch 中pad函数toch.nn.functional.pad()的用法
Jan 08 #Python
pycharm激活码有效到2020年11月底
Sep 18 #Python
You might like
从C/C++迁移到PHP——判断字符类型的函数
2006/10/09 PHP
PHP实现将科学计数法转换为原始数字字符串的方法
2014/12/16 PHP
Docker配置PHP开发环境教程
2016/12/21 PHP
PHP截取发动短信内容的方法
2017/07/04 PHP
PHP实现提取多维数组指定一列的方法总结
2019/12/04 PHP
JS之小练习代码
2008/10/12 Javascript
xml 封装与解析(javascript和C#中)
2009/07/26 Javascript
javascript控制Div层透明属性由浅变深由深变浅逐渐显示
2013/11/12 Javascript
JavaScript DOM元素尺寸和位置
2015/04/13 Javascript
Jquery 全选反选实例代码
2015/11/19 Javascript
jQuery禁用键盘后退屏蔽F5刷新及禁用右键单击
2016/01/22 Javascript
layer弹出层中H5播放器全屏出错的解决方法
2017/02/21 Javascript
js 函数式编程学习笔记
2017/03/25 Javascript
利用VS Code开发你的第一个AngularJS 2应用程序
2017/12/15 Javascript
2019最新21个MySQL高频面试题介绍
2020/02/06 Javascript
python处理圆角图片、圆形图片的例子
2014/04/25 Python
Python爬虫学习之翻译小程序
2019/07/30 Python
详解Python打包分发工具setuptools
2019/08/05 Python
Django Admin中增加导出CSV功能过程解析
2019/09/04 Python
django和flask哪个值得研究学习
2020/07/31 Python
css3中仿放大镜效果的几种方式原理解析
2020/12/03 HTML / CSS
澳大利亚女士时装在线:Rockmans
2018/09/26 全球购物
西班牙手机之家:Phone House
2018/10/18 全球购物
奥地利度假券的专家:we-are.travel
2019/04/10 全球购物
SQL Server数据库笔试题和答案
2016/02/04 面试题
教师业务学习制度
2014/01/25 职场文书
八一建军节活动方案
2014/02/10 职场文书
学生无故旷课检讨书
2014/09/20 职场文书
住房抵押登记委托书
2014/09/27 职场文书
公安局班子个人对照检查材料思想汇报
2014/10/09 职场文书
市场营销计划书范文
2015/01/16 职场文书
营销计划书
2015/01/17 职场文书
《观潮》教学反思
2016/02/17 职场文书
2016个人先进事迹材料范文
2016/03/01 职场文书
SQL 窗口函数实现高效分页查询的案例分析
2021/05/21 SQL Server
MySQL分区以及建索引的方法总结
2022/04/13 MySQL