我可以在滚动区域之外创建一个组框吗?

Can I make a groupbox outside of a scroll area?

我有一个标题为“123”的 QGroupBox。 QGroupBox里面,应该有一个QScrollArea。这意味着QGrouBox的标题'123'应该在QScrollArea之外。

我的示例代码如下。

import sys

import PyQt4
from PyQt4.QtGui import *
from PyQt4.QtCore import *

class Example(QWidget):
    def __init__(self, parent = None):
        super().__init__()

        btn = QPushButton('button')

        scroll = QScrollArea()
        scroll.setWidgetResizable(True)
        scroll.setWidget(btn)


        groupbox = QGroupBox('123')
        groupbox.setLayout(scroll)


        self.show()


def main():
    app = QApplication(sys.argv)
    main = Example()
    main.show()
    sys.exit(app.exec_())

正如您在上面看到的,现在 returns TypeError: setLayout(self, QLayout): argument 1 has unexpected type 'QScrollArea'

我只是想知道这是否可以实现?谢谢!!

当您想将内容添加到 QGroupBox 时,您必须通过包含必要小部件的布局来完成,在这种情况下,因为它只是一个小部件,我们可以使用任何布局,并且在此布局中我们添加这个案例是 QScrollArea 的小部件作为示例然后:

class Example(QWidget):
    def __init__(self, parent = None):
        super().__init__()
        self.setLayout(QVBoxLayout())

        btn = QPushButton('button')
        scroll = QScrollArea()
        scroll.setWidgetResizable(True)
        scroll.setWidget(btn)

        groupbox = QGroupBox('123', self)
        groupbox.setLayout(QVBoxLayout())
        groupbox.layout().addWidget(scroll)

        self.layout().addWidget(groupbox)

截图: