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操作CouchDB的方法
Oct 08 Python
Python列表append和+的区别浅析
Feb 02 Python
用Python的Tornado框架结合memcached页面改善博客性能
Apr 24 Python
在Python中处理XML的教程
Apr 29 Python
Flask入门之上传文件到服务器的方法示例
Jul 18 Python
python实现推箱子游戏
Mar 25 Python
Python3+OpenCV2实现图像的几何变换(平移、镜像、缩放、旋转、仿射)
May 13 Python
python算法与数据结构之单链表的实现代码
Jun 27 Python
python每天定时运行某程序代码
Aug 16 Python
Python timer定时器两种常用方法解析
Jan 20 Python
Python数组并集交集补集代码实例
Feb 18 Python
Python 解决火狐浏览器不弹出下载框直接下载的问题
Mar 09 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实现的回溯算法示例
2017/08/15 PHP
详解php中生成标准uuid(guid)的方法
2019/04/28 PHP
json 定义
2008/06/10 Javascript
一个简单的jQuery插件制作 学习过程及实例
2010/04/25 Javascript
读jQuery之六 缓存数据功能介绍
2011/06/21 Javascript
jQuery1.6 使用方法一
2011/11/23 Javascript
JavaScript栏目列表隐藏/显示简单实现
2013/04/03 Javascript
JS定时关闭窗口的实例
2013/05/22 Javascript
JavaScript动态创建div属性和样式示例代码
2013/10/09 Javascript
js toFixed()方法的重写实现精度的统一
2014/03/06 Javascript
flash+jQuery实现可关闭及重复播放的压顶广告
2015/04/15 Javascript
js检测iframe是否加载完成的方法
2015/11/26 Javascript
JS修改地址栏参数实例代码
2016/06/14 Javascript
jQuery获取元素父节点的方法
2016/06/21 Javascript
基于 webpack2 实现的多入口项目脚手架详解
2017/06/26 Javascript
原生js实现简单的模态框示例
2017/09/08 Javascript
详解Vue-cli代理解决跨域问题
2017/09/27 Javascript
vue脚手架搭建项目的兼容性配置详解
2018/07/17 Javascript
javascript中toFixed()四舍五入使用方法详解
2018/09/28 Javascript
JavaScript格式化json和xml的方法示例
2019/01/22 Javascript
vue封装可复用组件confirm,并绑定在vue原型上的示例
2019/10/31 Javascript
js里面的变量范围分享
2020/07/18 Javascript
浅谈JavaScript中等号、双等号、 三等号的区别
2020/08/06 Javascript
Python库urllib与urllib2主要区别分析
2014/07/13 Python
python根据给定文件返回文件名和扩展名的方法
2015/03/27 Python
Python操作MongoDB数据库PyMongo库使用方法
2015/04/27 Python
python学习必备知识汇总
2017/09/08 Python
Python基础之函数的定义与使用示例
2019/03/23 Python
Pytorch中实现只导入部分模型参数的方式
2020/01/02 Python
网页布局中CSS样式无效的十个重要原因详解
2017/08/10 HTML / CSS
亚马逊意大利站点:Amazon.it
2020/12/31 全球购物
会计岗位描述
2014/02/22 职场文书
多媒体专业自我鉴定
2014/02/28 职场文书
2014副镇长民主生活会个人对照检查材料思想汇报
2014/09/30 职场文书
博士生专家推荐信
2015/03/25 职场文书
MySQL中正则表达式(REGEXP)使用详解
2022/07/07 MySQL