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读写文件操作示例程序
Dec 02 Python
Python的Flask框架中实现登录用户的个人资料和头像的教程
Apr 20 Python
在Django同1个页面中的多表单处理详解
Jan 25 Python
Tensorflow 合并通道及加载子模型的方法
Jul 26 Python
Python3实现爬取简书首页文章标题和文章链接的方法【测试可用】
Dec 11 Python
python读出当前时间精度到秒的代码
Jul 05 Python
python版百度语音识别功能
Jul 09 Python
新手如何发布Python项目开源包过程详解
Jul 11 Python
python实现连连看辅助(图像识别)
Mar 25 Python
python 有效的括号的实现代码示例
Nov 11 Python
解决Python 写文件报错TypeError的问题
Oct 23 Python
用Python爬取各大高校并可视化帮弟弟选大学,弟弟直呼牛X
Jun 11 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
SONY ICF-SW07收音机电路分析
2021/03/02 无线电
php的dl函数用法实例
2014/11/06 PHP
php中smarty模板条件判断用法实例
2015/06/11 PHP
封装的原生javascript弹出层代码
2010/09/24 Javascript
javascript面向对象入门基础详细介绍
2012/09/05 Javascript
详解Angular 4.x 动态创建组件
2017/04/25 Javascript
微信小程序自定义导航隐藏和显示功能
2017/06/13 Javascript
关于Stream和Buffer的相互转换详解
2017/07/26 Javascript
vue绑定设置属性的多种方式(5)
2017/08/16 Javascript
微信小程序实现添加手机联系人功能示例
2017/11/30 Javascript
webpack+vue2构建vue项目骨架的方法
2018/01/09 Javascript
vue项目如何刷新当前页面的方法
2018/05/18 Javascript
NodeJS 中Stream 的基本使用
2018/07/30 NodeJs
详解Vue.js使用Swiper.js在iOS
2018/09/10 Javascript
vue学习笔记之slot插槽基本用法实例分析
2020/02/01 Javascript
vue element table中自定义一些input的验证操作
2020/07/18 Javascript
安装ElasticSearch搜索工具并配置Python驱动的方法
2015/12/22 Python
Python实现的弹球小游戏示例
2017/08/01 Python
Python做智能家居温湿度报警系统
2018/09/25 Python
python3 实现爬取TOP500的音乐信息并存储到mongoDB数据库中
2019/08/24 Python
解决pytorch多GPU训练保存的模型,在单GPU环境下加载出错问题
2020/06/23 Python
Python confluent kafka客户端配置kerberos认证流程详解
2020/10/12 Python
查找适用于matplotlib的中文字体名称与实际文件名对应关系的方法
2021/01/05 Python
详解CSS3伸缩布局盒模型Flex布局
2018/08/20 HTML / CSS
意大利简约的休闲品牌:Aspesi
2018/02/08 全球购物
韩国流行时尚女装网站:Dintchina(中文)
2018/07/19 全球购物
是否有自动比较结构的方法
2015/06/03 面试题
C#实现启动一个进程
2016/10/01 面试题
应用艺术专业个人的自我评价
2014/01/03 职场文书
致跳高运动员广播稿
2014/01/13 职场文书
感恩老师的演讲稿
2014/05/06 职场文书
卫生系统先进事迹
2014/05/13 职场文书
社会工作专业自荐信
2014/09/26 职场文书
专题组织生活会发言材料
2014/10/17 职场文书
小学语文教师竞聘演讲稿范文
2019/08/09 职场文书
详解Redis集群搭建的三种方式
2021/05/31 Redis