QMessageBox点击右上角的关闭按钮没反应
时间: 2024-02-20 20:54:32 浏览: 142
winform实现的自动关闭的MessageBox
5星 · 资源好评率100%
QMessageBox点击右上角的关闭按钮没反应可能是因为没有正确处理关闭事件。你可以通过重写窗口的closeEvent()方法来实现关闭按钮的功能。在该方法中,你可以添加自定义的关闭逻辑,例如询问用户是否确认关闭窗口。
以下是一个示例代码,演示了如何处理关闭事件:
```python
from PyQt5.QtWidgets import QApplication, QWidget, QMessageBox
from PyQt5.QtCore import Qt
class MyWindow(QWidget):
def __init__(self):
super().__init__()
def closeEvent(self, event):
reply = QMessageBox.question(self, '确认关闭', '确定要关闭窗口吗?', QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
if reply == QMessageBox.Yes:
event.accept()
else:
event.ignore()
app = QApplication([])
window = MyWindow()
window.show()
app.exec_()
```
在上述代码中,我们重写了QWidget的closeEvent()方法。当用户点击关闭按钮时,会弹出一个询问框,询问用户是否确认关闭窗口。如果用户点击了Yes按钮,那么窗口会被关闭;如果用户点击了No按钮,那么窗口将保持打开状态。
阅读全文