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实现的简单猜数字游戏
Apr 04 Python
pycharm设置注释颜色的方法
May 23 Python
python实现猜单词小游戏
May 22 Python
python对列进行平移变换的方法(shift)
Jan 10 Python
python实现栅栏加解密 支持密钥加密
Mar 20 Python
Python交互式图形编程的实现
Jul 25 Python
Python如何使用字符打印照片
Jan 03 Python
python文件和文件夹复制函数
Feb 07 Python
python super函数使用方法详解
Feb 14 Python
PHP基于phpqrcode类库生成二维码过程解析
May 28 Python
Python headers请求头如何实现快速添加
Nov 03 Python
Python 用户输入和while循环的操作
May 23 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
用PHP和ACCESS写聊天室(八)
2006/10/09 PHP
PHP中PDO的错误处理
2011/09/04 PHP
smarty模板引擎之内建函数用法
2015/03/30 PHP
php metaphone()函数的定义和用法
2016/05/15 PHP
php执行多个存储过程的方法【基于thinkPHP】
2016/11/08 PHP
PHP中call_user_func_array回调函数的用法示例
2016/11/26 PHP
一些常用的JS功能函数(2009-06-04更新)
2009/06/04 Javascript
javascript 从if else 到 switch case 再到抽象
2010/07/17 Javascript
jquery ajax同步异步的执行最终解决方案
2013/04/26 Javascript
如何判断微信内置浏览器(通过User Agent实现)
2014/09/01 Javascript
js面向对象之常见创建对象的几种方式(工厂模式、构造函数模式、原型模式)
2015/11/09 Javascript
浅析jQuery移动开发中内联按钮和分组按钮的编写
2015/12/04 Javascript
浅谈js的url解析函数封装
2016/06/28 Javascript
使用mint-ui实现省市区三级联动效果的示例代码
2018/02/09 Javascript
让Vue也可以使用Redux的方法
2018/05/23 Javascript
Vue 页面状态保持页面间数据传输的一种方法(推荐)
2018/11/01 Javascript
对于防止按钮重复点击的尝试详解
2019/04/22 Javascript
[00:27]DOTA2战队VP、Secret贺新春
2018/02/11 DOTA
[01:04:09]DOTA2-DPC中国联赛 正赛 iG vs VG BO3 第二场 2月2日
2021/03/11 DOTA
numpy.delete删除一列或多列的方法
2018/04/03 Python
python+pyqt5实现24点小游戏
2019/01/24 Python
python json 递归打印所有json子节点信息的例子
2020/02/27 Python
django序列化时使用外键的真实值操作
2020/07/15 Python
python解包用法详解
2021/02/17 Python
俄罗斯香水和化妆品在线商店:Aroma-butik
2020/02/28 全球购物
过滤器的用法
2013/10/08 面试题
采购类个人求职的自我评价
2014/02/18 职场文书
市场营销管理毕业生自荐信
2014/03/03 职场文书
2014社区三八妇女节活动方案
2014/03/30 职场文书
质量承诺书怎么写
2014/05/24 职场文书
小学生志愿者活动方案
2014/08/23 职场文书
法人委托书范本格式
2014/09/15 职场文书
军事博物馆观后感
2015/06/05 职场文书
python 实现定时任务的四种方式
2021/04/01 Python
Ubuntu Server 安装Tomcat并配置systemctl
2022/04/28 Servers