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 相关文章推荐
使用PYTHON创建XML文档
Mar 01 Python
python使用chardet判断字符串编码的方法
Mar 13 Python
python对html代码进行escape编码的方法
May 04 Python
python3+PyQt5实现使用剪贴板做复制与粘帖示例
Jan 24 Python
python+opencv实现动态物体追踪
Jan 09 Python
Pandas 按索引合并数据集的方法
Nov 15 Python
python学习--使用QQ邮箱发送邮件代码实例
Apr 16 Python
Flask-WTF表单的使用方法
Jul 12 Python
Django 博客实现简单的全文搜索的示例代码
Feb 17 Python
Python解释器及PyCharm工具安装过程
Feb 26 Python
使用python matplotlib 画图导入到word中如何保证分辨率
Apr 16 Python
详解python tkinter 图片插入问题
Sep 03 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
php学习之数据类型之间的转换介绍
2011/06/09 PHP
php 文章调用类代码
2011/08/11 PHP
php中字符串和正则表达式详解
2014/10/23 PHP
PHP中你应该知道的require()文件包含的正确用法
2015/06/12 PHP
PHP多进程编程总结(推荐)
2016/07/18 PHP
PHP实现的下载远程文件类定义与用法示例
2017/07/05 PHP
Laravel 数据库加密及数据库表前缀配置方法
2019/10/10 PHP
JavaScript中的View-Model使用介绍
2011/08/11 Javascript
JavaScript移除数组元素减少长度的方法
2013/09/05 Javascript
JavaScript常用脚本汇总(二)
2015/03/04 Javascript
jQuery ui实现动感的圆角渐变网站导航菜单效果代码
2015/08/26 Javascript
理解javascript中Map代替循环
2016/02/26 Javascript
Node.js的npm包管理器基础使用教程
2016/05/26 Javascript
JavaScript中获取时间的函数集
2016/08/16 Javascript
Bootstrap弹出框modal上层的输入框不能获得焦点问题的解决方法
2016/12/13 Javascript
整理关于Bootstrap列表组的慕课笔记
2017/03/29 Javascript
详解nodejs模板引擎制作
2017/06/14 NodeJs
vue.js简单配置axios的方法详解
2017/12/13 Javascript
vue项目创建步骤及路由router
2020/01/14 Javascript
js实现3D旋转效果
2020/08/18 Javascript
[58:46]OG vs NAVI 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
初步讲解Python中的元组概念
2015/05/21 Python
python脚本实现验证码识别
2018/06/07 Python
对python中数组的del,remove,pop区别详解
2018/11/07 Python
python 中xpath爬虫实例详解
2019/08/26 Python
python scrapy重复执行实现代码详解
2019/12/28 Python
解决keras backend 越跑越慢问题
2020/06/18 Python
html5 input元素新特性_动力节点Java学院整理
2017/07/06 HTML / CSS
Three Graces London官网:英国奢侈品牌
2021/03/18 全球购物
工地资料员岗位职责
2013/12/31 职场文书
自我管理的活动方案
2014/08/25 职场文书
给老师的感谢信
2015/01/20 职场文书
盲山观后感
2015/06/11 职场文书
高老头读书笔记
2015/06/30 职场文书
2015年社区反邪教工作总结
2015/10/14 职场文书
为什么你写的height:100%不起作用
2021/05/10 HTML / CSS