我在Qt中使用拖放操作查看了大小问题。
让我先从图像开始帮助我解释
这是我表单的主窗口。
会发生什么:
我们有4个标签小部件。左标签小部件有一个水平分割器到2个中间小部件。 2个中间小部件有一个垂直分割器,左侧和右侧有一个水平分割器。
右边的小部件左侧有一个垂直分割器。
所以所有视图都使用分割器进行连接。
最后,主体形式使用水平布局以可调整大小的方式将所有东西粘在一起。
问题是,最左边和最右边的小部件的宽度是固定的(在设计器中)。 我希望它们的宽度更小。类似于:
您可以看到窗口小部件已调整大小。我能够运行应用程序,并手动调整分割器。在QtDesigner中有没有办法做到这一点?我试过玩政策。然而,我并没有真正得到更多。这是否表明我对政策缺乏了解?也许布局一般?
我应该使用哪些选项来使用QtDesigner实现所需的布局。我想避免使用代码。
希望我能尽快解决这个问题。它必须忽略一些简单的东西..
答案 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);
并记住最小尺寸的儿童小部件