【问题标题】:Pyqt add 9 elements in layout and then lot of layout in group boxPyqt 在布局中添加 9 个元素,然后在组框中添加大量布局
【发布时间】:2022-01-09 06:58:45
【问题描述】:

我想在一个布局中将元素排成一行,很多布局都会在GroupBox中,一定是这样的。

Result Interface

我尝试发布这个

formLayout = QFormLayout()

for i in range(50):
    formLayout.addRow(QLabel(i), QPushButton("Start"))

groupBox.setLayout(formLayout)
self.scrollArea.setWidget(groupBox)
self.scrollArea.setWidgetResizable(True)

Result from code

我知道我应该使用 grib 布局,因为我有很多元素,但是如何创建一个每个人都有 9 个元素的布局?

只需解释它应该如何分组,就像这样scrollArea->groupBox->formLayout.addrow(elements) 我不需要完整的代码,我可以自己写。

【问题讨论】:

  • 您显示的布局不是表单布局,它可能是网格布局,但实际上它看起来更像是 QTableView(或 QTableWidget)甚至是 QTreeView (如果左侧的那些小箭头用于展开元素)。在这种情况下使用嵌套布局可能不是一个好的解决方案,因为每个布局都将独立于其他布局,从而导致小部件可能无法正确对齐。
  • 明白了,这个小箭头用于展开元素。那么最好的方法是 QTreeView?
  • 是的,在这种情况下,带有 QStandardItemModel 或 QTreeWidget 的 QTreeView 可能会有所帮助,然后使用 setItemWidget() 添加按钮。
  • 非常感谢。祝你有美好的一天

标签: python pyqt pyqt5


【解决方案1】:

您显示的布局不是表单布局,它可能是网格布局,但实际上它看起来更像是 QTableView(或 QTableWidget)甚至是 QTreeView(如果左侧的那些小箭头用于展开元素)。在这种情况下使用嵌套布局可能不是一个好的解决方案,因为每个布局都将独立于其他布局,从而导致小部件可能无法正确对齐。在这种情况下,用于展开元素的这个小箭头带有 QStandardItemModel 或 QTreeWidget 的 QTreeView 可能会有所帮助,然后使用 setItemWidget() 添加按钮。 – musicamante

【讨论】:

  • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 1970-01-01
  • 2016-03-08
  • 1970-01-01
  • 2017-05-10
  • 1970-01-01
  • 2016-04-20
  • 2011-06-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多