Traceback (most recent call last): File "C:\Users\Administrator\PycharmProjects\pythonProject5\keshe.py", line 178, in <module> ui2.setupUi(Dialog) File "C:\Users\Administrator\PycharmProjects\pythonProject5\keshe.py", line 144, in setupUi MainWindow.setCentralWidget(self.centralwidget) AttributeError: 'QDialog' object has no attribute 'setCentralWidget'
时间: 2023-07-21 21:26:50 浏览: 184
这个错误是由于您在使用 PyQt5 创建 GUI 时,尝试将一个 QWidget 对象作为 QMainWindow 的中央部件添加到 QDialog 中,而 QDialog 没有 setCentralWidget() 方法。
如果您想要在 QDialog 中实现类似于 QMainWindow 的中央部件,可以使用 QVBoxLayout 将 QWidget 对象添加到 QDialog 中,如下所示:
```
from PyQt5.QtWidgets import QDialog, QVBoxLayout, QWidget
class MyDialog(QDialog):
def __init__(self, parent=None):
super().__init__(parent)
self.setWindowTitle("My Dialog")
# 创建 QWidget 对象作为中央部件
central_widget = QWidget()
# 创建 QVBoxLayout 对象,并将 QWidget 对象添加到其中
layout = QVBoxLayout()
layout.addWidget(central_widget)
# 将 QVBoxLayout 设置为 QDialog 的布局
self.setLayout(layout)
# 设置 QWidget 对象的布局
central_widget.setLayout(central_widget_layout)
```
这样,您就可以像在 QMainWindow 中一样在 MyDialog 中添加中央部件了。
阅读全文