判断pyqt6窗口关闭
时间: 2024-09-05 21:04:23 浏览: 124
在 PyQt6 中,可以通过连接信号和槽机制来判断窗口是否关闭。具体来说,可以使用 `QCloseEvent` 类,这是专门用于处理关闭事件的类。当窗口接收到关闭事件时,可以通过重写 `closeEvent` 方法来实现自定义的关闭逻辑。
下面是一个简单的例子,展示了如何在 PyQt6 中判断窗口关闭:
```python
from PyQt6.QtWidgets import QApplication, QMainWindow, QCloseEvent
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
# 窗口初始化代码
self.setWindowTitle('窗口标题')
self.setGeometry(100, 100, 400, 300)
# 重写 closeEvent 方法来处理窗口关闭事件
def closeEvent(self, event: QCloseEvent):
reply = self.close_confirm()
if reply == True:
event.accept()
else:
event.ignore()
def close_confirm(self):
reply = QMessageBox.question(self, '确认',
"您确定要关闭窗口吗?",
QMessageBox.StandardButton.Yes | QMessageBox.StandardButton.No,
QMessageBox.StandardButton.No)
return reply == QMessageBox.StandardButton.Yes
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
mainWin = MainWindow()
mainWin.show()
sys.exit(app.exec())
```
在上面的代码中,`MainWindow` 类继承自 `QMainWindow`。在类定义中,我们重写了 `closeEvent` 方法。当用户尝试关闭窗口时,会触发该事件处理方法,并弹出一个对话框询问用户是否确实想要关闭窗口。根据用户的响应,事件将被接受(允许窗口关闭)或忽略(阻止窗口关闭)。
阅读全文