布局:如何在垂直布局中将一个小部件制作3倍

Raj*_*war 2 layout qt qt-designer

我在垂直布局中有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>
Run Code Online (Sandbox Code Playgroud)

具有4个小部件的垂直布局具有1,0,0,0的拉伸布局.最顶层小部件的高度看起来比其他小部件小.我希望最顶端的小部件比其他小部件大2倍

RA.*_*RA. 5

在包含3个表的布局上,在Qt Designer 中将layoutStretch属性设置为3,1,1.这指定布局中的第一个元素应该具有布局中其他两个元素的3倍的空间.

更新:

对于更新的示例.ui文件,您可以通过将layoutStretchto 设置为2,1,1,1:使最顶部的窗口小部件大于其他窗口小部件的2倍:

     <layout class="QVBoxLayout" name="verticalLayout_2" stretch="2,1,1,1">
Run Code Online (Sandbox Code Playgroud)

请注意,stretch属性指定布局的不同元素之间的比率.换句话说,如果将layoutStretch属性中的一个元素设置为,则无法获得所需的结果0.