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

时间:2013-08-13 17:00:05

标签: qt layout 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>

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

1 个答案:

答案 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,则无法获得所需的结果。