pyqt5判断主窗口是否被关闭
时间: 2024-09-29 08:12:39 浏览: 57
在PyQt5中,你可以通过监听`QMainWindow`对象的`closed()`信号来检查主窗口是否已经被用户关闭。这个信号会在窗口关闭事件发生后发送。下面是一个简单的例子:
```python
from PyQt5.QtWidgets import QMainWindow, QApplication
from PyQt5.QtCore import pyqtSlot
class MainWindow(QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
# 连接closed()信号到槽函数
self.closed.connect(self.on_window_closed)
@pyqtSlot()
def on_window_closed(self):
if self.isWindowActive(): # 检查窗口是否仍然活动
print("主窗口未被关闭")
else:
print("主窗口已被关闭")
# 创建应用并显示主窗口
app = QApplication([])
main_win = MainWindow()
main_win.show()
# 如果应用程序在此处等待,可以继续监控关闭事件
app.exec_()
```
在这个例子中,`on_window_closed`槽函数会在窗口真正关闭之前被调用。你可以根据需要在那里做进一步的操作,比如保存数据或清理资源。
阅读全文