【pyqt5学习】——重写窗口右上角关闭事件closeEvent()
2023-09-11 14:21:45 时间
目录
1、法一:设置中文按钮
def closeEvent(self, event):
reply = QMessageBox(QMessageBox.Question, self.tr("提示"),
self.tr("最小化界面还是关闭界面"), QtWidgets.QMessageBox.NoButton, self)
yr_btn = reply.addButton(self.tr("关闭界面"), QtWidgets.QMessageBox.YesRole)
reply.addButton(self.tr("最小化界面"), QtWidgets.QMessageBox.NoRole)
reply.exec_()
if reply.clickedButton() == yr_btn:
event.accept()
QtWidgets.qApp.quit()
# sys.exit(app.exec_())
else:
event.ignore()
# 最小化到托盘
2、法二:不设置中文按钮
def closeEvent(self, event):
# 默认直接调用QMessageBox.question 弹出询问的方法
reply = QtWidgets.QMessageBox.question(self,
'本程序',
"是否要退出程序?",
QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No,
QtWidgets.QMessageBox.No)
if reply == QtWidgets.QMessageBox.Yes:
event.accept()
self.close()
elif reply == QtWidgets.QMessageBox.No:
event.ignore()
self.setWindowFlags(QtCore.Qt.SplashScreen | QtCore.Qt.FramelessWindowHint)
self.showMinimized()
else:
# 最小化到托盘
self.setWindowFlags(QtCore.Qt.SplashScreen | QtCore.Qt.FramelessWindowHint)
self.showMinimized()
注:其实法一的最小化没有作用,法二的关闭没有作用
这里只是提供一种重写右上角关闭的方法,弹窗提示
相关文章
- 代码走查25条疑问 C# 跳转新的标签页 C#线程处理 .Net 特性 attribute 学习 ----自定义特性 看懂 ,学会 .NET 事件的正确姿势-简单版
- vue—你必须知道的 js数据类型 前端学习 CSS 居中 事件委托和this 让js调试更简单—console AMD && CMD 模式识别课程笔记(一) web攻击 web安全之XSS JSONP && CORS css 定位 react小结
- Google Earth Engine ——世界洪水事件案例
- Javascript事件绑定常见方案详解
- 如何利用机器学习和分布式计算来对用户事件进行聚类
- Java 事件监听
- JavaScript 模拟键盘事件
- Qt音视频开发5-vlc事件订阅
- 系统学习DOM事件机制
- vue学习笔记五:Jquery VS Vue之事件监听明细对照
- cocos2dx+lua学习笔记:事件派发器CCEventDispatcher
- OpenHarmony/HarmonyOS通用事件
- Dart 异步编程之 Isolate 和事件循环
- Android学习之Listview及其点击事件
- Android学习之单选框事件
- 报告称网络事件或成中国企业长期风险
- SQL Server中的扩展事件学习系列
- JS学习第7天——移动端特效(触屏事件touch、classList属性、轮播图、click延时解决方案、常用开发插件和开发框架)
- Vue学习第16天——全局事件总线$bus的理解
- Vue学习第14天——vue自定义事件及详细代码演示
- 3D Slicer Modify Mouse Event 修改3D Slicer中的鼠标响应事件
- 【pyqt5学习】——添加菜单栏动作action,给动作触发triggered绑定事件
- 事件的运算
- 详解 QT 源码之 Qt 事件机制原理