如何将中间小部件居中并展开其单元格

how to center a middle widget and expand its cell

在 Qt 设计器中,我如何在 vertical/horizontal/grid 布局中居中放置一个中间部件并同时展开它的单元格,我想要得到的是这样的:

我得到了什么:

您将需要添加一个水平垫片。然后对于间隔器,您可以添加属性。是固定还是扩大。

所以首先 select 并添加一个水平分隔符,然后当您 select 水平分隔符时,您可以在属性小部件中为其设置属性:

将垫片放置在两个小部件之间的方式是,首先拖动垫片并将其放置在小部件之间,select放置所有小部件,然后右键单击并水平分组。这会将您的小部件和垫片置于水平布局中:

如果您想在代码中手动执行此操作,请查看 QSpacerItem

一种可能的解决方案是通过布局将中间的QPushButton放置在一个QWidget中,然后将该QWidget放置在QHBoxLayout的第二列:

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>Form</class>
 <widget class="QWidget" name="Form">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>400</width>
    <height>300</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>Form</string>
  </property>
  <layout class="QHBoxLayout" name="horizontalLayout_2">
   <item>
    <widget class="QPushButton" name="pushButton">
     <property name="text">
      <string>PushButton</string>
     </property>
    </widget>
   </item>
   <item>
    <widget class="QWidget" name="widget" native="true">
     <property name="sizePolicy">
      <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
       <horstretch>0</horstretch>
       <verstretch>0</verstretch>
      </sizepolicy>
     </property>
     <layout class="QHBoxLayout" name="horizontalLayout">
      <property name="leftMargin">
       <number>0</number>
      </property>
      <property name="topMargin">
       <number>0</number>
      </property>
      <property name="rightMargin">
       <number>0</number>
      </property>
      <property name="bottomMargin">
       <number>0</number>
      </property>
      <item>
       <widget class="QPushButton" name="pushButton_2">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Maximum" vsizetype="Fixed">
          <horstretch>0</horstretch>
          <verstretch>0</verstretch>
         </sizepolicy>
        </property>
        <property name="text">
         <string>PushButton</string>
        </property>
       </widget>
      </item>
     </layout>
    </widget>
   </item>
   <item>
    <widget class="QPushButton" name="pushButton_3">
     <property name="text">
      <string>PushButton</string>
     </property>
    </widget>
   </item>
  </layout>
 </widget>
 <resources/>
 <connections/>
</ui>

输出: