如何在 Qt Designer 中自动调整子元素的大小?

How to automatically resize a child element in Qt Designer?

我正在使用 QT Designer 制作我的软件的 GUI。

我的 GUI 有一些选项卡,当用户在他的计算机上全屏显示 GUI 时,我成功地设法自动调整全宽大小。

然后在每个选项卡中,我需要插入一个工具箱。但是这次,当用户使 GUI 全屏显示时,我没有成功自动调整此工具箱的大小。

我认为向您解释我的问题的最佳方式是查看我的屏幕截图: 我在 QT 设计器中的 GUI:

有问题的预览:

您可以在预览中看到,当我全屏时,工具箱的大小保持不变。

解决方案

您需要向 tab_Run 添加布局,例如通过选择 tabWidget 并按 Ctrl+L(在 Windows 上),所以你的树看起来像这样:

注意:一般来说,你必须为每个小部件设置一个布局,你想要由Qt自动管理的whos的大小children。

例子

作为参考,这是我创建的 ui 文件:

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>MainWindow</class>
 <widget class="QMainWindow" name="MainWindow">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>800</width>
    <height>600</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>MainWindow</string>
  </property>
  <widget class="QWidget" name="centralwidget">
   <layout class="QVBoxLayout" name="verticalLayout">
    <item>
     <widget class="QTabWidget" name="tabWidget">
      <property name="currentIndex">
       <number>0</number>
      </property>
      <widget class="QWidget" name="tab_Run">
       <attribute name="title">
        <string>Run</string>
       </attribute>
       <layout class="QVBoxLayout" name="verticalLayout_2">
        <item>
         <widget class="QToolBox" name="toolBox">
          <property name="currentIndex">
           <number>0</number>
          </property>
          <widget class="QWidget" name="page">
           <property name="geometry">
            <rect>
             <x>0</x>
             <y>0</y>
             <width>758</width>
             <height>443</height>
            </rect>
           </property>
           <attribute name="label">
            <string>Page 1</string>
           </attribute>
          </widget>
          <widget class="QWidget" name="page_2">
           <property name="geometry">
            <rect>
             <x>0</x>
             <y>0</y>
             <width>758</width>
             <height>443</height>
            </rect>
           </property>
           <attribute name="label">
            <string>Page 2</string>
           </attribute>
          </widget>
         </widget>
        </item>
       </layout>
      </widget>
      <widget class="QWidget" name="tab_Campaigns">
       <attribute name="title">
        <string>Campaigns</string>
       </attribute>
      </widget>
      <widget class="QWidget" name="tab_Settings">
       <attribute name="title">
        <string>Settings</string>
       </attribute>
      </widget>
      <widget class="QWidget" name="tab_Help">
       <attribute name="title">
        <string>Help</string>
       </attribute>
      </widget>
     </widget>
    </item>
   </layout>
  </widget>
  <widget class="QMenuBar" name="menubar">
   <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
     <width>800</width>
     <height>21</height>
    </rect>
   </property>
  </widget>
  <widget class="QStatusBar" name="statusbar"/>
 </widget>
 <resources/>
 <connections/>
</ui>

结果

这是生成的结果: