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 相关文章推荐
Python3 正在毁灭 Python的原因分析
Nov 28 Python
Pycharm学习教程(4) Python解释器的相关配置
May 03 Python
Python面向对象编程基础解析(二)
Oct 26 Python
python实现音乐下载的统计
Jun 20 Python
python 切换root 执行命令的方法
Jan 19 Python
django2.0扩展用户字段示例
Feb 13 Python
python 采用paramiko 远程执行命令及报错解决
Oct 21 Python
安装2019Pycharm最新版本的教程详解
Oct 22 Python
Python连接SQLite数据库并进行增册改查操作方法详解
Feb 18 Python
Python实现猜年龄游戏代码实例
Mar 25 Python
利用Python发送邮件或发带附件的邮件
Nov 12 Python
利用python 下载bilibili视频
Nov 13 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中一个控制字符串输出的函数
2006/10/09 PHP
phpMyAdmin 链接表的附加功能尚未激活问题的解决方法(已测)
2012/03/27 PHP
Prototype使用指南之form.js
2007/01/10 Javascript
jquery tablesorter.js 支持中文表格排序改进
2009/12/09 Javascript
jQuery的实现原理的模拟代码 -1 核心部分
2010/08/01 Javascript
js Form.elements[i]的使用实例
2011/11/13 Javascript
深入理解JavaScript系列(2) 揭秘命名函数表达式
2012/01/15 Javascript
mailto的使用技巧分享
2012/12/21 Javascript
用原生JavaScript实现jQuery的$.getJSON的解决方法
2013/05/03 Javascript
充分发挥Node.js程序性能的一些方法介绍
2015/06/23 Javascript
Javascript实现字数统计
2015/07/03 Javascript
javascript简单比较日期大小的方法
2016/01/05 Javascript
jquery日历插件datepicker用法分析
2016/01/22 Javascript
AngularJS整合Springmvc、Spring、Mybatis搭建开发环境
2016/02/25 Javascript
Bootstrap3 多个模态对话框无法显示的解决方案
2017/02/23 Javascript
JavaScript使用math.js进行精确计算操作示例
2018/06/19 Javascript
JavaScript canvas实现雪花随机动态飘落
2020/02/08 Javascript
Pyramid Mako模板引入helper对象的步骤方法
2013/11/27 Python
python抓取网页中图片并保存到本地
2015/12/01 Python
Python微信公众号开发平台
2018/01/25 Python
python生成tensorflow输入输出的图像格式的方法
2018/02/12 Python
使用python的pandas库读取csv文件保存至mysql数据库
2018/08/20 Python
Python分割训练集和测试集的方法示例
2019/09/19 Python
Python坐标线性插值应用实现
2019/11/13 Python
Django对接支付宝实现支付宝充值金币功能示例
2019/12/17 Python
NICKIS.com荷兰:设计师儿童时装
2020/01/08 全球购物
介绍一下代理模式(Proxy)
2014/10/17 面试题
暑假实习求职信范文
2013/09/22 职场文书
师范毕业生求职自荐信
2013/09/25 职场文书
高三地理教学反思
2014/01/11 职场文书
商品陈列协议书
2014/09/29 职场文书
酒店人事专员岗位职责
2015/04/07 职场文书
百家讲坛观后感
2015/06/12 职场文书
贷款工作证明模板
2015/06/12 职场文书
详细聊聊MySQL中慢SQL优化的方向
2021/08/30 MySQL
python中redis包操作数据库的教程
2022/04/19 Python