【发布时间】:2022-01-09 06:58:45
【问题描述】:
我想在一个布局中将元素排成一行,很多布局都会在GroupBox中,一定是这样的。
我尝试发布这个
formLayout = QFormLayout()
for i in range(50):
formLayout.addRow(QLabel(i), QPushButton("Start"))
groupBox.setLayout(formLayout)
self.scrollArea.setWidget(groupBox)
self.scrollArea.setWidgetResizable(True)
我知道我应该使用 grib 布局,因为我有很多元素,但是如何创建一个每个人都有 9 个元素的布局?
只需解释它应该如何分组,就像这样scrollArea->groupBox->formLayout.addrow(elements)
我不需要完整的代码,我可以自己写。
【问题讨论】:
-
您显示的布局不是表单布局,它可能是网格布局,但实际上它看起来更像是 QTableView(或 QTableWidget)甚至是 QTreeView (如果左侧的那些小箭头用于展开元素)。在这种情况下使用嵌套布局可能不是一个好的解决方案,因为每个布局都将独立于其他布局,从而导致小部件可能无法正确对齐。
-
明白了,这个小箭头用于展开元素。那么最好的方法是 QTreeView?
-
是的,在这种情况下,带有 QStandardItemModel 或 QTreeWidget 的 QTreeView 可能会有所帮助,然后使用
setItemWidget()添加按钮。 -
非常感谢。祝你有美好的一天