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 Property属性的2种用法
Jun 21 Python
分享几道你可能遇到的python面试题
Jul 24 Python
python中如何正确使用正则表达式的详细模式(Verbose mode expression)
Nov 08 Python
Python 机器学习库 NumPy入门教程
Apr 19 Python
在python环境下运用kafka对数据进行实时传输的方法
Dec 27 Python
Flask框架踩坑之ajax跨域请求实现
Feb 22 Python
Python3 解决读取中文文件txt编码的问题
Dec 20 Python
在Tensorflow中实现leakyRelu操作详解(高效)
Jun 30 Python
浅谈优化Django ORM中的性能问题
Jul 09 Python
Pycharm学生免费专业版安装教程的方法步骤
Sep 24 Python
python链表类中获取元素实例方法
Feb 23 Python
python 多态 协议 鸭子类型详解
Nov 27 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
Windows7下PHP开发环境安装配置图文方法
2010/05/20 PHP
php URL验证正则表达式
2011/07/19 PHP
Yii 快速,安全,专业的PHP框架
2014/09/03 PHP
php查询ip所在地的方法
2014/12/05 PHP
php随机获取金山词霸每日一句的方法
2015/07/09 PHP
js过滤数组重复元素的方法
2010/09/05 Javascript
Javascript面向对象编程(三) 非构造函数的继承
2011/08/28 Javascript
JS声明变量背后的编译原理剖析
2012/12/28 Javascript
Jquery中val()表单取值赋值的实例代码
2013/08/15 Javascript
jQuery 文本框得失焦点的简单实例
2014/02/19 Javascript
JavaScript AOP编程实例
2015/06/16 Javascript
js钢琴按钮波浪式图片排列效果代码分享
2015/08/26 Javascript
javascript实现动态标签云
2015/10/16 Javascript
跟我学习javascript创建对象(类)的8种方法
2015/11/20 Javascript
详解node.js搭建代理服务器请求数据
2017/04/08 Javascript
webpack里使用jquery.mCustomScrollbar插件的方法
2018/05/30 jQuery
three.js利用gpu选取物体并计算交点位置的方法示例
2019/11/25 Javascript
Vue 实现创建全局组件,并且使用Vue.use() 载入方式
2020/08/11 Javascript
[02:32]DOTA2英雄基础教程 祸乱之源
2013/12/23 DOTA
python下载文件时显示下载进度的方法
2015/04/02 Python
Python中设置变量作为默认值时容易遇到的错误
2015/04/03 Python
python 二分查找和快速排序实例详解
2017/10/13 Python
从CentOS安装完成到生成词云python的实例
2017/12/01 Python
centos6.5安装python3.7.1之后无法使用pip的解决方案
2019/02/14 Python
解决django后台样式丢失,css资源加载失败的问题
2019/06/11 Python
浅析Python 多行匹配模式
2020/07/24 Python
python如何实现递归转非递归
2021/02/25 Python
详解HTML5将footer置于页面最底部的方法(CSS+JS)
2018/10/11 HTML / CSS
2013年保送生自荐信格式
2013/11/20 职场文书
饮料业务员岗位职责
2013/12/15 职场文书
房产委托公证书
2014/04/08 职场文书
常务副县长“四风”个人对照检查材料思想汇报
2014/10/02 职场文书
2019奶茶店创业计划书范本,值得你借鉴
2019/08/14 职场文书
英语版自我评价,35句话轻松搞定
2019/10/08 职场文书
使用Redis实现秒杀功能的简单方法
2021/05/08 Redis
python批量创建变量并赋值操作
2021/06/03 Python