Qt拆分器布局使用Qt Designer调整行为大小

时间:2012-03-10 20:56:25

标签: c++ qt layout

我在Qt中使用拖放操作查看了大小问题。

让我先从图像开始帮助我解释

enter image description here

这是我表单的主窗口。

会发生什么:

我们有4个标签小部件。左标签小部件有一个水平分割器到2个中间小部件。 2个中间小部件有一个垂直分割器,左侧和右侧有一个水平分割器。

右边的小部件左侧有一个垂直分割器。

所以所有视图都使用分割器进行连接。

最后,主体形式使用水平布局以可调整大小的方式将所有东西粘在一起。

问题是,最左边和最右边的小部件的宽度是固定的(在设计器中)。 我希望它们的宽度更小。类似于:

enter image description here

您可以看到窗口小部件已调整大小。我能够运行应用程序,并手动调整分割器。在QtDesigner中有没有办法做到这一点?我试过玩政策。然而,我并没有真正得到更多。这是否表明我对政策缺乏了解?也许布局一般?

我应该使用哪些选项来使用QtDesigner实现所需的布局。我想避免使用代码。

希望我能尽快解决这个问题。它必须忽略一些简单的东西..

2 个答案:

答案 0 :(得分:9)

您可以使用“水平拉伸”和“垂直拉伸”属性来更改分割的位置。

例如,顶部中央QTabWidget的垂直拉伸和中央QSplitter的水平拉伸均为1,所有其他值保持为0,您将获得所需的结果

当您有多个非零拉伸值时,比率的结果(例如:2个中心的垂直拉伸和2个中心QTabWidget s => 2/3和1/3的1)不是在设计器中可见但在运行应用程序时似乎正在工作。

PS:您也可以使用标签QDockWidget获得相同的结果,但只能通过设计器进行停靠标签化。

答案 1 :(得分:1)

我设置起始位置:

QList<int> list= ui->splitter->sizes();
list.replace(0,this->height()/0.3);
list.replace(1,this->height()/0.7);
ui->splitter->setSizes(list);

并记住最小尺寸的儿童小部件