【pyqt5学习】——重写窗口右上角关闭事件closeEvent()

本文介绍了两种使用PyQT5在关闭窗口时显示提示信息的方法。第一种方法通过自定义按钮文本,让用户选择关闭或最小化;第二种方法使用QMessageBox内置选项进行询问。虽然示例中的最小化和关闭操作可能无效,但提供了重写关闭事件的思路。
摘要由CSDN通过智能技术生成

 

目录

1、法一:设置中文按钮

2、法二:不设置中文按钮


pyqt5 关闭按钮显示提示信息_Marvin_Xavier的博客-CSDN博客_pyqt 关闭按钮icon-default.png?t=M4ADhttps://blog.csdn.net/marwenx/article/details/107226531

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()

 注:其实法一的最小化没有作用,法二的关闭没有作用

        这里只是提供一种重写右上角关闭的方法,弹窗提示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有情怀的机械男

你的鼓励将是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值