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

Pet*_*erG 3 qt qwidget

在此输入图像描述我有一个QTableWidget,QTextEdit取消和好的按钮.

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

我怎样才能做到这一点?

sam*_*m-w 13

您需要查看Qt的布局系统 - 使用布局将根据父级的大小自动调整对象大小.

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

以上面给出的图像为例:

QtDesigner中的解决方案示例

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

  • 设置垂直sizePolicytextEditFixed.
  • textEdit's中设置高度以minimumSizesizePolicy使用.
  • 设置layoutStretchcentralWidget1,0,即分配中包含的元素尽可能小的空间horizontalLayout,并给任何剩余的空间tableWidget.