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 03 Python
Python2.x和3.x下maketrans与translate函数使用上的不同
Apr 13 Python
Python编写Windows Service服务程序
Jan 04 Python
django js实现部分页面刷新的示例代码
May 28 Python
python3.6实现学生信息管理系统
Feb 21 Python
django的ORM操作 增加和查询
Jul 26 Python
python聚类算法解决方案(rest接口/mpp数据库/json数据/下载图片及数据)
Aug 28 Python
如何利用pygame实现简单的五子棋游戏
Dec 29 Python
通过实例解析python描述符原理作用
Jan 22 Python
opencv python Canny边缘提取实现过程解析
Feb 03 Python
keras和tensorflow使用fit_generator 批次训练操作
Jul 03 Python
django使用多个数据库的方法实例
Mar 04 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 socket并借助telnet实现简单的聊天程序
2013/06/18 PHP
Yii数据库缓存实例分析
2016/03/29 PHP
php操作xml并将其插入数据库的实现方法
2016/09/08 PHP
php微信开发之音乐回复功能
2018/06/14 PHP
JSON 入门指南 想了解json的朋友可以看下
2009/08/26 Javascript
关于UTF-8的客户端用AJAX方式获取GB2312的服务器端乱码问题的解决办法
2010/11/30 Javascript
Jquery加载时从后台读取数据绑定到dropdownList实例
2013/06/09 Javascript
动态载入js提高网页打开速度的方法
2014/07/04 Javascript
第三章之Bootstrap 表格与按钮功能
2016/04/25 Javascript
jQuery实现的购物车物品数量加减功能代码
2016/11/16 Javascript
解决bootstrap中使用modal加载kindeditor时弹出层文本框不能输入的问题
2017/06/05 Javascript
jquery ajaxfileupload异步上传插件
2017/11/21 jQuery
vue 文件目录结构详解
2017/11/24 Javascript
vue通过路由实现页面刷新的方法
2018/01/25 Javascript
深入浅析Vue中的slots/scoped slots
2018/04/03 Javascript
JS通过ajax + 多列布局 + 自动加载实现瀑布流效果
2019/05/30 Javascript
layui点击弹框页面 表单请求的方法
2019/09/21 Javascript
基于Vue中的父子传值问题解决
2020/07/27 Javascript
JS canvas实现画板和签字板功能
2021/02/23 Javascript
python根据京东商品url获取产品价格
2015/08/09 Python
python3中str(字符串)的使用教程
2017/03/23 Python
java判断三位数的实例讲解
2019/06/10 Python
宝塔面板成功部署Django项目流程(图文)
2020/06/22 Python
Python错误的处理方法
2020/06/23 Python
Python+OpenCV图像处理——实现直线检测
2020/10/23 Python
国际性能运动服装品牌:Dare 2b
2018/07/27 全球购物
圣彼得堡鲜花配送:Semicvetic
2020/09/15 全球购物
神路信息Java面试题目
2013/03/31 面试题
物业管理个人自我评价
2013/11/08 职场文书
成品仓管员工作职责
2013/12/29 职场文书
《第一朵杏花》教学反思
2014/04/16 职场文书
班级心理活动总结
2014/07/04 职场文书
公司租房协议书范本
2014/10/08 职场文书
2014年科研工作总结
2014/12/03 职场文书
罚款通知怎么写
2015/04/22 职场文书
pytorch中F.avg_pool1d()和F.avg_pool2d()的使用操作
2021/05/22 Python