我有一个标题为'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'
。
我只是想知道这是否可以实现?谢谢!
答案 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)
截图: