loseEvent()
时间: 2023-06-23 15:00:03 浏览: 40
closeEvent()是QWidget中的一个事件,用于在窗口关闭时执行特定的操作。当用户尝试关闭窗口时,closeEvent()方法会被自动触发。您可以重写closeEvent()方法并在其中添加自定义代码,以在窗口关闭时执行特定的操作,例如保存文件或退出应用程序。
以下是一个简单的示例,演示如何在关闭窗口时弹出一个确认对话框:
```python
from PyQt5.QtWidgets import QWidget, QMessageBox, QApplication
import sys
class MyWindow(QWidget):
def __init__(self):
super().__init__()
def closeEvent(self, event):
reply = QMessageBox.question(self, 'Message', 'Are you sure you want to quit?', QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
if reply == QMessageBox.Yes:
event.accept()
else:
event.ignore()
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MyWindow()
window.show()
sys.exit(app.exec_())
```
在这个例子中,我们创建了一个名为MyWindow的QWidget对象,并重写了它的closeEvent()方法。在closeEvent()方法中,我们创建了一个QMessageBox对话框,询问用户是否确定要退出。如果用户点击“Yes”按钮,我们调用event.accept()方法,关闭窗口。如果用户点击“No”按钮,我们调用event.ignore()方法,忽略关闭事件,窗口不会关闭。