我正在尝试创建一个QDockWidget,其中包含另一个QWidget,后者又包含其他QWidget。
我的代码如下。它产生错误消息' QWidget :: setLayout:试图设置QLayout"" on"",已经有布局'。
问题似乎是我在' ResultBox'中设置了一个布局。 QWidget,已经从某个地方继承了一个。如何阻止继承它,或者如何删除继承的,以便我可以替换它?
或者,有没有办法可以在里面添加新的小部件' ResultBox'没有使用布局?
我已经尝试阅读类似问题的答案,但无法解决我的问题。
class InfoWidget(QDockWidget):
def __init__(self):
QDockWidget.__init__(self, 'Information')
container = QWidget() # new container without an inherited layout
layout = QVBoxLayout()
heading = QLabel()
heading.setText('My Heading')
layout.addWidget(heading)
layout.addSpacing(INFO_SPACE)
resultBox = ResultBox()
layout.addWidget(resultBox)
container.setLayout(layout)
self.setWidget(container)
class ResultBox(QWidget):
def __init__(self):
QWidget.__init__(self)
def paintEvent(self, QPaintEvent):
layout = QVBoxLayout()
shortResultLine = QWidget()
layout.addWidget(shortResultLine)
quickResultLine = QWidget()
layout.addWidget(quickResultLine)
self.setLayout(layout)