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实现将文件归档到zip文件及从zip文件中读取数据的方法
May 22 Python
全面了解python中的类,对象,方法,属性
Sep 11 Python
微信小程序跳一跳游戏 python脚本跳一跳刷高分技巧
Jan 04 Python
spark: RDD与DataFrame之间的相互转换方法
Jun 07 Python
用Python读取几十万行文本数据
Dec 24 Python
python获取地震信息 微信实时推送
Jun 18 Python
使用python的pandas为你的股票绘制趋势图
Jun 26 Python
linux环境下安装python虚拟环境及注意事项
Jan 07 Python
Python如何将图像音视频等资源文件隐藏在代码中(小技巧)
Feb 16 Python
Python如何操作office实现自动化及win32com.client的运用
Apr 01 Python
浅析Python中字符串的intern机制
Oct 03 Python
Pytorch 实现变量类型转换
May 17 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目录遍历函数opendir用法实例
2014/11/20 PHP
thinkphp5 模型实例化获得数据对象的教程
2019/10/18 PHP
JQuery 学习笔记 element属性控制
2009/07/23 Javascript
javascript简单性能问题及学习笔记
2014/02/04 Javascript
JavaScript的Backbone.js框架环境搭建及Hellow world示例
2016/05/07 Javascript
jQuery height()、innerHeight()、outerHeight()函数的区别详解
2016/05/23 Javascript
BootStrap框架中的data-[ ]自定义属性理解(推荐)
2017/02/14 Javascript
iframe高度自适应及隐藏滚动条的实例详解
2017/09/29 Javascript
vue.js打包之后可能会遇到的坑!
2018/06/03 Javascript
vue-cli 3.0 版本与3.0以下版本在搭建项目时的区别详解
2018/12/11 Javascript
JavaScript ES6中的简写语法总结与使用技巧
2018/12/30 Javascript
Python3.5编程实现修改IIS WEB.CONFIG的方法示例
2017/08/18 Python
Django如何实现内容缓存示例详解
2017/09/24 Python
Python批处理更改文件名os.rename的方法
2018/10/26 Python
python将txt文件读取为字典的示例
2018/12/22 Python
PyCharm在新窗口打开项目的方法
2019/01/17 Python
Python学习笔记基本数据结构之序列类型list tuple range用法分析
2019/06/08 Python
解决pycharm运行程序出现卡住scanning files to index索引的问题
2019/06/27 Python
python列表推导式入门学习解析
2019/12/02 Python
tensorflow 只恢复部分模型参数的实例
2020/01/06 Python
python3用PyPDF2解析pdf文件,用正则匹配数据方式
2020/05/12 Python
MATLAB数学建模之画图汇总
2020/07/16 Python
基于python实现删除指定文件类型
2020/07/21 Python
python使用scapy模块实现ping扫描的过程详解
2021/01/21 Python
css3实现文字首尾衔接跑马灯的示例代码
2020/10/16 HTML / CSS
英国电子产品购物网站:TobyDeals
2018/07/30 全球购物
VICHY薇姿俄罗斯官方网上商店:法国护肤品牌,火山温泉水
2019/11/22 全球购物
GAZMAN官网:澳大利亚领先的男装品牌
2019/12/19 全球购物
益模软件Java笔试题
2012/03/27 面试题
团员学习总结的自我评价范文
2013/10/14 职场文书
财务部岗位职责
2013/11/19 职场文书
就业推荐表自我鉴定范文
2014/03/21 职场文书
公司职员入党自传书
2015/06/26 职场文书
婚礼家长致辞
2015/07/27 职场文书
2016年秋季运动会加油稿
2015/12/21 职场文书
浅谈MySQL之select优化方案
2021/08/07 MySQL