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 字符串中的字符倒转
Sep 06 Python
win7安装python生成随机数代码分享
Dec 27 Python
python原始套接字编程示例分享
Feb 21 Python
Python 制作糗事百科爬虫实例
Sep 22 Python
老生常谈python之鸭子类和多态
Jun 13 Python
Numpy截取指定范围内的数据方法
Nov 14 Python
kali中python版本的切换方法
Jul 11 Python
Python3 合并二叉树的实现
Sep 30 Python
Python爬虫爬取新闻资讯案例详解
Jul 14 Python
python如何设置静态变量
Sep 07 Python
python爬虫利器之requests库的用法(超全面的爬取网页案例)
Dec 17 Python
python网络爬虫实现发送短信验证码的方法
Feb 25 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/02/05 PHP
浅谈PHP封装CURL
2019/03/06 PHP
IE DOM实现存在的部分问题及解决方法
2009/07/25 Javascript
javascript 读取XML数据,在页面中展现、编辑、保存的实现
2009/10/27 Javascript
jquery.bgiframe.js在IE9下提示INVALID_CHARACTER_ERR错误
2013/01/11 Javascript
Egret引擎开发指南之编译项目
2014/09/03 Javascript
jquery实现TAB选项卡鼠标经过带延迟效果的方法
2015/07/27 Javascript
JS如何判断json是否为空
2016/07/06 Javascript
Vue使用vue-cli创建项目
2017/09/01 Javascript
JS实现标签滚动切换效果
2017/12/25 Javascript
浅谈ajax请求不同页面的微信JSSDK问题
2018/02/26 Javascript
基于Vue的延迟加载插件vue-view-lazy
2018/05/21 Javascript
Vue 让元素抖动/摆动起来的实现代码
2018/05/31 Javascript
在vue中使用express-mock搭建mock服务的方法
2018/11/07 Javascript
JS获取月的第几周和年的第几周实例代码
2018/12/05 Javascript
js使用文件流下载csv文件的实现方法
2019/07/15 Javascript
小程序点餐界面添加购物车左右摆动动画
2020/09/23 Javascript
vue的$http的get请求要加上params操作
2020/11/12 Javascript
详解Python的Django框架中的中间件
2015/07/24 Python
python将字典内容存入mysql实例代码
2018/01/18 Python
python简易实现任意位数的水仙花实例
2018/11/13 Python
基于MSELoss()与CrossEntropyLoss()的区别详解
2020/01/02 Python
使用OpenCV实现道路车辆计数的使用方法
2020/07/15 Python
利用CSS3实现动态的二级三级菜单效果实例源码
2017/01/04 HTML / CSS
Css3实现无缝滚动防抖
2020/09/14 HTML / CSS
UGG澳洲官网:UGG Australia
2018/04/26 全球购物
ZWILLING双立人法国网上商店:德国刀具锅具厨具品牌
2019/08/28 全球购物
俄罗斯金苹果网上化妆品和香水商店:Goldapple
2019/12/01 全球购物
华为慧通笔试题
2016/04/22 面试题
渗透攻击的测试步骤
2014/06/07 面试题
vue 中 get / delete 传递数组参数方法
2021/03/23 Vue.js
大学生逃课检讨书
2015/05/04 职场文书
公司致全体员工的感谢信
2019/06/24 职场文书
pygame面向对象的飞行小鸟实现(Flappy bird)
2021/04/01 Python
Python实现视频中添加音频工具详解
2021/12/06 Python
Python if else条件语句形式详解
2022/03/24 Python