布局:如何在垂直布局中让一个小部件的大小是其他小部件的3倍

3

我有3个垂直布局的表格(A、B和C),这3个表格的大小策略(水平和垂直)均设置为expanding。如何使表格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个回答

5
在包含三个表格的布局中,使用Qt Designer将layoutStretch属性设置为3,1,1。这指定布局中的第一个元素应该比布局中的其他两个元素多占用三倍的空间。
更新: 对于您更新的示例.ui文件,您可以通过将layoutStretch设置为2,1,1,1来使最上面的小部件比其他小部件大两倍。
     <layout class="QVBoxLayout" name="verticalLayout_2" stretch="2,1,1,1">

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

但是这种方式会使TableA增加,而表B和C的大小保持不变,当表单被放大时它们不会扩展。 - Rajeshwar
@Rajeshwar 你试过了吗?它的工作效果正如预期,所有表格都会展开,包括B和C。 - user362638
是的,我做了。布局约束设置为默认布局约束。对我来说,似乎表格被设置为扩展,而b和C变成了固定的。 - Rajeshwar
@Rajeshwar 我无法重现你的结果。你是否在表格或布局上设置了其他属性? - RA.
我正在另一个表单上尝试这个。稍后会发布结果,只是为了确保我不会改变其他属性。 - Rajeshwar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接