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双向链表实现实例代码
Nov 21 Python
python私有属性和方法实例分析
Jan 15 Python
利用Python中unittest实现简单的单元测试实例详解
Jan 09 Python
Python数据类型中的“冒号“[::]——分片与步长操作示例
Jan 24 Python
Tensorflow卷积神经网络实例进阶
May 24 Python
Python实现数据可视化看如何监控你的爬虫状态【推荐】
Aug 10 Python
Python数据类型之List列表实例详解
May 08 Python
Python中断多重循环的思路总结
Oct 04 Python
详解pandas获取Dataframe元素值的几种方法
Jun 14 Python
举例讲解Python装饰器
Dec 24 Python
2020年10款优秀的Python第三方库,看看有你中意的吗?
Jan 12 Python
Python实战之实现康威生命游戏
Apr 26 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下载远程文件到本地存储的方法
2015/03/24 PHP
PHP 图片合成、仿微信群头像的方法示例
2019/10/25 PHP
html的DOM中document对象forms集合用法实例
2015/01/21 Javascript
关于JavaScript的变量的数据类型的判断方法
2015/08/14 Javascript
浅谈jQuery hover(over, out)事件函数
2016/12/03 Javascript
详解angular2实现ng2-router 路由和嵌套路由
2017/03/24 Javascript
Node.js成为Web应用开发最佳选择的原因
2018/02/05 Javascript
vue 实现的树形菜的实例代码
2018/03/19 Javascript
官方推荐react-navigation的具体使用详解
2018/05/08 Javascript
Vue使用watch监听一个对象中的属性的实现方法
2019/05/10 Javascript
jquery多级树形下拉菜单的实例代码
2019/07/09 jQuery
微信小程序修改数组长度的问题的解决
2019/12/17 Javascript
Python continue语句用法实例
2014/03/11 Python
python socket 超时设置 errno 10054
2014/07/01 Python
Python 爬虫模拟登陆知乎
2016/09/23 Python
Python操作MySQL数据库的方法
2018/06/20 Python
Python多线程应用于自动化测试操作示例
2018/12/06 Python
opencv3/C++ 平面对象识别&透视变换方式
2019/12/11 Python
pytorch __init__、forward与__call__的用法小结
2021/02/27 Python
html5教程制作简单画板代码分享
2013/12/04 HTML / CSS
Html5 web本地存储实例详解
2016/07/28 HTML / CSS
美国隐形眼镜销售网站:ContactsDirect
2017/10/28 全球购物
亚马逊墨西哥站:Amazon.com.mx
2018/08/26 全球购物
英国最受信任的在线眼镜商之一:Fashion Eyewear
2019/10/31 全球购物
营销专业应届生求职信
2013/11/26 职场文书
《金钱的魔力》教学反思
2014/02/24 职场文书
经贸专业毕业生求职信
2014/03/23 职场文书
大学生活自我评价
2014/04/09 职场文书
个人课题方案
2014/05/08 职场文书
三峡人家导游词
2015/01/31 职场文书
2015年五四青年节活动总结
2015/02/10 职场文书
董事长岗位职责
2015/02/13 职场文书
装饰技术负责人岗位职责
2015/04/13 职场文书
Golang二维数组的使用方式
2021/05/28 Golang
Python包argparse模块常用方法
2021/06/04 Python
【DOTA2】半决赛强强对话~ PSG LGD vs EHOME - DPC 2022 CN REGIONAL FINALS WINTER
2022/04/02 DOTA