pyqt closeevent退出程序
时间: 2023-10-17 16:07:04 浏览: 91
您可以在 PyQt 中重写 `closeEvent` 方法来实现关闭窗口时退出程序的功能。具体实现方法如下:
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QMessageBox
class MyWidget(QWidget):
def __init__(self):
super().__init__()
def closeEvent(self, event):
reply = QMessageBox.question(self, 'Message', 'Are you sure to quit?',
QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
if reply == QMessageBox.Yes:
event.accept()
else:
event.ignore()
if __name__ == '__main__':
app = QApplication(sys.argv)
widget = MyWidget()
widget.show()
sys.exit(app.exec_())
```
在上面的代码中,我们重写了 `closeEvent` 方法,并在其中弹出了一个询问对话框,询问用户是否确定退出程序。如果用户点击了 Yes 按钮,则调用 `event.accept()` 方法退出程序;否则,调用 `event.ignore()` 方法忽略关闭事件,程序继续运行。
阅读全文