更改对话框窗口大小时,使QTableWidget展开

时间:2011-11-09 15:04:10

标签: qt qwidget

enter image description here我有一个QTableWidgetQTextEdit,并取消&好的按钮。

我希望这些小部件相对于彼此保持相同的位置,并且如果对话窗口被扩展或大小改变,则QTableWidget将展开...

我该怎么做?

1 个答案:

答案 0 :(得分:13)

您需要查看Qt's layout system - 使用布局会根据父级的大小自动调整对象大小。

使用QWidget::setSizePolicy()QBoxLayout::setStretch()(或者更可能是QBoxLayout::insertWidget(..., int stretch = 0, ...))的组合将允许您实现您所引用的行为,其中只有某些对象扩展以填充可用空间,而其他保持不变的大小。

以上面给出的图片为例:

Example of solution in QtDesigner

除了将对象拖放到表单中之外,为了实现此解决方案,我有:

  • sizePolicy的垂直textEdit设置为Fixed
  • textEdit minimumSize设置sizePolicy使用的高度。
  • layoutStretch中的centralWidget设置为1,0,即为horizontalLayout中包含的元素指定最小可能空间,并将任何剩余空间提供给tableWidget