PyQt5 closeEvent关闭事件退出提示框原理解析
作者:MilesMa 发布时间:2022-10-18 05:51:17
标签:PyQt,closeEvent,关闭,事件
这篇文章主要介绍了PyQt5 closeEvent关闭事件退出提示框原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
如果关闭QWidget,就会产生一个QCloseEvent,并且把它传入到closeEvent函数的event参数中。改变控件的默认行为,就是替换掉默认的事件处理。
原生的英文提示框:
# 添加一个退出的提示事件
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()
修改成中文样式:
# 添加中文的确认退出提示框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()
来源:https://www.cnblogs.com/milesma/p/12149176.html


猜你喜欢
- 事件背景最近业务研发反映了一个需求:能不能让现有基于 gin 的 webservice 框架能够自己输出 response 的信息,尤其是
- golang 中多个 defer 的执行顺序引用 Ture Go 中的一个示例:package mainimport "fmt&q
- 我这里只讲几点有关于MySQL数据库安装后遇到的个别问题 我之前安装过MYSQL好像不用手动启动服务,具体也忘记了,但我上回给公司安装的那个
- 简单的说,在vue中我们使用模板HTML语法组建页面的,使用render函数我们可以用js语言来构建DOM因为vue是虚拟DOM,所以在拿到
- 最近给客户演示程序运行结果,我就想到用Python写一个录屏程序,在网上能找到现成的源码,但是它的录屏是录制整个屏幕的。但是在屏幕桌面下方的
- 本文实例为大家分享了Python函数实现学员管理系统的具体代码,供大家参考,具体内容如下这个是一个简单的管理程序输入姓名,年龄,性别(也可以
- 用JDBC实现对MySQL的“增删改查”:import java.sql.Connection;im
- 也许自己真的就是有手残的毛病,你说好端端的环境配置好了,自己还在那里瞎鼓捣,我最不想看到的就是在安装一个别的模块的时候,自动卸载了本地的其他
- 在图像处理以及图像特效中,经常会用到一种成高斯分布的蒙版,蒙版可以用来做图像融合,将不同内容的两张图像结合蒙版,可以营造不同的艺术效果。这里
- 代码如下:--CAST 和 CONVERT 函数 Percentage DECLARE @dec decimal(5,3), @var va
- 对于一般的图像提取轮廓,介绍了一个很好的方法,但是对于有噪声的图像,并不能很好地捕获到目标物体。比如对于我的鼠标,提取的轮廓效果并不好,因为
- 日志文件满而造成SQL数据库无法写入文件时,可用两种方法:一种方法:清空日志。1.打开查询分析器,输入命令DUMP TRANSAC
- 装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象.经常用于有切
- k-近邻算法概述简单地说,k近邻算法采用测量不同特征值之间的距离方法进行分类。k-近邻算法优点:精度高、对异常值不敏感、无数据输入假定。缺点
- 本文实例讲述了Python使用回溯法子集树模板获取最长公共子序列(LCS)的方法。分享给大家供大家参考,具体如下:问题输入第1行:字符串A第
- 一、python中进程间通信业务场景:在当前遇到的业务场景中,我们需要启一个间隔任务,这个间隔任务跑一个算法,然后把算法的结果进行一些处理,
- 本文实例讲述了Python爬虫实现“盗取”微信好友信息的方法。分享给大家供大家参考,具体如下:刚起床,闲来无聊,找点事做,看了朋友圈一篇爬取
- 方法一: select `name` from mysql.proc where db = 'your_db_name' a
- 今天群上面同志们在讨论css3内发光效果,自己也就研究一下,写了个效果出来,涉及css3投影,渐变,蒙版,伪类等知识点,现在写下设计思路,仅
- JavaScript中的XMLHttpRequest和XML DOM首先,我们需要建立一些规则。特殊的XMLHttpRequest对象和一般