gpt4 book ai didi

c++ - 如何使 Qt 网格布局自动调整列宽

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:45:35 25 4
gpt4 key购买 nike

我有一个带有网格布局的QDialog。网格为 5 列宽,行数可变。 QDialog 以一个预构建的 UI 开始,该 UI 在 5 列的每一列中都有一个标签。网格的其余部分构建如下。对于添加的每一行:

  • 将 QLineEdit 添加到 col 0
  • 一个 QComboBox 被添加到 cols 1-3 并且每个都有可变的和不同数量的项目
  • QCheckBox 添加到第 4 列

完成后,第 0 列是最宽的列。第 1-4 列的宽度相同。某些组合框项目(第 1-3 列)太宽而无法看到并显示为“...”。复选框列 (4) 比需要的更宽。我已经尝试在其中的每个该死的小部件(包括对话框本身)上使用 QWidget::adjustSize(),但我无法使其自动调整大小以适应所有内容。在尝试调试它时,我打印出了每一列的小部件宽度,但我看到的值与我在屏幕上看到的完全不同。我的印象是网格布局会自动调整每列中的每个小部件,使其宽度足以容纳最宽的项目,但它似乎并没有这样做。是否有某种 setAutoColumnWidth 属性之类的?

最佳答案

如果要为布局列设置宽度,可以为布局内的小部件设置 Stretch 值。例如,将所有小部件的水平延伸设置为 1 以获得相等的宽度:

lineEdit->sizePolicy().setHorizontalStretch(1);
comboBox1->sizePolicy().setHorizontalStretch(1);
comboBox2->sizePolicy().setHorizontalStretch(1);
comboBox3->sizePolicy().setHorizontalStretch(1);
checkBox->sizePolicy().setHorizontalStretch(1);

如果您希望特定列更宽,请为该列中的小部件设置更高的拉伸(stretch)值。

关于c++ - 如何使 Qt 网格布局自动调整列宽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27808440/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com