AttributeError: 'QMainWindow' object has no attribute 'accept'
时间: 2023-11-02 15:07:18 浏览: 225
这个错误是由于您的代码中的一个错误导致的。根据引用,错误提示 'QMainWindow' object has no attribute 'accept' 表示 QMainWindow 类没有 'accept' 属性。而您的代码中,您的 winTest 类继承自 QtWidgets.QWidget 和 Ui_wintest.Ui_MainWindow,而不是 QMainWindow。因此,您需要将 winTest 类的基类更改为 QMainWindow,以便正确使用 'accept' 方法。
修改后的代码如下:
```python
from PyQt5.QtWidgets import QMessageBox, QApplication, QMainWindow
import sys
import Ui_wintest
showMessage = QMessageBox.question
class winTest(QMainWindow, Ui_wintest.Ui_MainWindow):
def __init__(self):
super(winTest, self).__init__()
self.setupUi(self)
def closeEvent(self, event):
reply = showMessage(self, '警告', "系统将退出,是否确认?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
if reply == QMessageBox.Yes:
event.accept()
else:
event.ignore()
if __name__ == '__main__':
app = QApplication(sys.argv)
w = winTest()
w.show()
sys.exit(app.exec_())
```
阅读全文