我在垂直布局中有3个表(A,B和C)。这3个的大小策略(水平和垂直)设置为展开。如何将表格A制作B和C尺寸的3倍,并始终保持该比例。我是通过QT Designer来做到这一点的。
更新
为了测试布局拉伸方法。我在垂直布局中将四个QlistWidgets添加到具有水平布局的表单中。这是表单的XML
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>formPracticeClass</class>
<widget class="QMainWindow" name="formPracticeClass">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>847</width>
<height>661</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="windowTitle">
<string>formPractice</string>
</property>
<widget class="QWidget" name="centralWidget">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<layout class="QVBoxLayout" name="verticalLayout_2" stretch="1,0,0,0">
<item>
<widget class="QListWidget" name="listWidget"/>
</item>
<item>
<widget class="QListWidget" name="listWidget_3"/>
</item>
<item>
<widget class="QListWidget" name="listWidget_2"/>
</item>
<item>
<widget class="QListWidget" name="listWidget_4"/>
</item>
</layout>
</item>
</layout>
</widget>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources>
<include location="formpractice.qrc"/>
</resources>
<connections/>
</ui>
4个小部件的垂直布局的拉伸布局为1,0,0,0。最顶层小部件的高度看起来比其他小部件小。我希望最顶端的小部件比其他小部件大2倍
答案 0 :(得分:5)
在包含3个表的布局上,在Qt Designer中将layoutStretch
属性设置为3,1,1
。这指定布局中的第一个元素的空间应该是布局中其他两个元素的3倍。
<强>更新强>
对于您更新的示例.ui文件,您可以将最顶层的窗口小部件设置为比其他窗口小2倍,方法是将layoutStretch
设置为2,1,1,1
:
<layout class="QVBoxLayout" name="verticalLayout_2" stretch="2,1,1,1">
请注意,stretch属性指定布局的不同元素之间的比率。换句话说,如果您将layoutStretch
属性中的一个元素设置为0
,则无法获得所需的结果。