如何使Qt网格布局自动调整列宽的大小
How to Make Qt Grid Layout Auto Size Column Widths
我有一个带有网格布局的QDialog
。网格宽 5 列,行数可变。QDialog
从一个预构建的 UI 开始,该 UI 在 5 列中的每一列中都有一个标签。网格的其余部分按如下方式构建。对于添加的每一行:
- a QLineEdit 被添加到 col 0
- QComboBox 被添加到 cols 1-3 中,每个 cols 都有一个变量和不同数量的项目
- 将 QCheckBox 添加到 col 4 中
完成此操作后,第 0 列是最宽的列。第 1-4 列的宽度相同。某些组合框项目(列 1-3)太宽而无法看到并显示为"..."。复选框列 (4) 的宽度超过其需要的宽度。我尝试在那里的每个该死的小部件(包括对话框本身)上使用QWidget::adjustSize()
,但我无法让它自动调整大小以适应所有内容。在尝试调试它时,我打印出了每列的小部件的宽度,但我看到的值与我在屏幕上看到的值完全不同。我的印象是网格布局会自动调整每列中的每个小部件,使其足够宽以适合最宽的项目,但它似乎没有这样做。有没有某种setAutoColumnWidth
属性或其他东西?
如果要
设置布局列的宽度,可以为布局内的微件设置拉伸值。例如,将所有小部件的水平拉伸设置为1
宽度相等:
lineEdit->sizePolicy().setHorizontalStretch(1);
comboBox1->sizePolicy().setHorizontalStretch(1);
comboBox2->sizePolicy().setHorizontalStretch(1);
comboBox3->sizePolicy().setHorizontalStretch(1);
checkBox->sizePolicy().setHorizontalStretch(1);
如果您希望特定列更宽,请为该列中的小组件设置更高的拉伸值。
相关文章:
- Qt 图表条形图调整大小崩溃
- 在Qt中自动调整小部件的大小
- 如何在Qt TableView中将列的宽度调整为数据并将最后一部分拉伸在一起
- Qt - 防止在拖动标题栏时调整窗口大小
- 为什么使用Qt Creator调整.ui文件会导致编译期间对.h文件进行更改
- 调整QT创建者的复选框
- QT QML ListView布局未调整大小
- Qt:如何调整QGraphicsItem以动态更改大小
- 当我在QT上调整图像大小时,如何将重点放在小部件的中间点
- QT调整窗口大小后,删除窗口后
- 可滚动的背景,上面有可调整大小的Qt小部件
- QT-检测所有小部件何时首次完成调整大小
- Qt QGraphicsSvgItem缩放和调整大小
- 为什么我的 qt centralWidget(一个 QGLWidget)不能正确调整大小?
- 使用Qt,如何使用鼠标向上或向左移动事件来调整小部件的大小
- 根据Qt表调整流量布局
- Qt QQuickView视觉错误/调整大小时闪烁
- 我可以在不手动调整Qt大小的情况下调用调整大小事件吗?
- 如何在Linux(Ubuntu)中调整Qt Creator for VTune放大器
- 调整QT中从QWindow继承的另一个类中的事件大小