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

时间:2017-10-03 12:56:10

标签: python pyqt4

我有一个标题为'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_())

如上所示,现在它返回TypeError: setLayout(self, QLayout): argument 1 has unexpected type 'QScrollArea'

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

enter image description here

1 个答案:

答案 0 :(得分:0)

如果要将内容添加到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)

截图:

enter image description here