3

我有 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 倍

4

1 回答 1

5

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

更新:

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

     <layout class="QVBoxLayout" name="verticalLayout_2" stretch="2,1,1,1">

请注意,拉伸属性指定布局的不同元素之间的比率。换句话说,如果您将layoutStretch属性中的一个元素设置为0.

于 2013-08-13T17:06:57.747 回答