无法在其他小部件中创建小部件 - 尝试设置QLayout"" on"",已经有了布局

时间:2017-01-14 03:54:16

标签: python pyqt

我正在尝试创建一个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)

0 个答案:

没有答案