动态添加小部件后垂直布局格式不佳

时间:2021-01-13 23:03:58

标签: python layout pyqt pyqt5

我在使用 QVBoxLayout 时遇到了问题,希望有人对此有所了解。我目前正在构建用于电气测试的 GUI。我有一个主要的 QTabWidget,其中包含两个选项卡 - 一个用于电极,一个用于测试。这些标签中的每一个都包含另一个 QTabWidget 对象,可以在第一种情况下动态添加和修改电极标签测试标签在第二。每个测试选项卡定义了一个电气测试,每个测试都取决于所有电极。

因此,Test sub-QTabWidget 的 tach 选项卡有一个滚动区域,其中包含 n 个名为 ElectrodeFrame(超级类型 = QFrame ),每个电极一个,其中 n 是电极的数量。可以在此处查看测试子 QTabWidget 选项卡的示例:

Good Layout

我正在努力在添加新的电极选项卡时向每个测试子选项卡的滚动区域插入一个新的 ElectrodeFrameElectrodeFrame 插入正确,但问题是它们所在的 QVboxLayout 没有更新其大小以容纳新的 ElectrodeFrame。我附上了两张图片:

  • 在第一个中,如下所示,(测试 1)创建了测试子选项卡(“测试 1”),然后添加了一个额外的电极子选项卡(除了默认的)。我们可以看到它们都在 QScrollArea
  • 在第二个中,如上所示,(测试 2)测试子选项卡(“测试 2”)是在创建附加电极 subab 之后创建的,我们可以看到 {{1}在这种情况下,}s 被压缩。

enter image description here

有没有人知道这里的问题是什么?我尝试在布局为 ElectrodeFrame 所在的 update() 的小部件上调用 QVboxLayout

可能有帮助的其他信息:

  • 我在 ElectrodeFrame 的底部有垂直间隔(在第一张图片中用红色表示)
  • 我在滚动区域使用了 QScrollArea,因为它挤压了 setWidgetResiable(False)(并违反了它们在类中定义的最小尺寸界限,我不明白)
  • 无论添加多少个新的,所有 ElectrodeFrame 的压缩大小都不会改变

此处的最小可重现示例:

ElectrodeFrame

0 个答案:

没有答案