在Qt Designer中未按预期放置窗口小部件

时间:2015-10-11 04:45:31

标签: qt pyqt qt-designer

我创建了自定义小部件,其中包含水平布局的按钮。

enter image description here

但是按钮没有正确放置并缩小。

enter image description here

我可以通过手动设置按钮大小来避免这种情况。 有没有办法自动避免这种行为?

.ui XML代码:



<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>VideoPlaybackWidgetBase</class>
 <widget class="QWidget" name="VideoPlaybackWidgetBase">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>790</width>
    <height>58</height>
   </rect>
  </property>
  <property name="sizePolicy">
   <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
    <horstretch>1</horstretch>
    <verstretch>1</verstretch>
   </sizepolicy>
  </property>
  <property name="minimumSize">
   <size>
    <width>0</width>
    <height>0</height>
   </size>
  </property>
  <property name="maximumSize">
   <size>
    <width>16777215</width>
    <height>58</height>
   </size>
  </property>
  <property name="windowTitle">
   <string>Form</string>
  </property>
  <layout class="QHBoxLayout" name="horizontalLayout_2">
   <item>
    <widget class="QFrame" name="horizontalFrame">
     <layout class="QHBoxLayout" name="horizontalLayout">
      <item>
       <widget class="QPushButton" name="moveFirstButton">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Maximum" vsizetype="Maximum">
          <horstretch>0</horstretch>
          <verstretch>0</verstretch>
         </sizepolicy>
        </property>
        <property name="text">
         <string>PushButton</string>
        </property>
       </widget>
      </item>
      <item>
       <widget class="QPushButton" name="movePrevButton">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Maximum" vsizetype="Maximum">
          <horstretch>0</horstretch>
          <verstretch>0</verstretch>
         </sizepolicy>
        </property>
        <property name="text">
         <string>PushButton</string>
        </property>
       </widget>
      </item>
      <item>
       <widget class="QPushButton" name="playButton">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Maximum" vsizetype="Maximum">
          <horstretch>0</horstretch>
          <verstretch>0</verstretch>
         </sizepolicy>
        </property>
        <property name="text">
         <string>PushButton</string>
        </property>
       </widget>
      </item>
      <item>
       <widget class="QPushButton" name="moveNextButton">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Maximum" vsizetype="Maximum">
          <horstretch>0</horstretch>
          <verstretch>0</verstretch>
         </sizepolicy>
        </property>
        <property name="text">
         <string>PushButton</string>
        </property>
       </widget>
      </item>
      <item>
       <widget class="QPushButton" name="moveLastButton">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Maximum" vsizetype="Maximum">
          <horstretch>0</horstretch>
          <verstretch>0</verstretch>
         </sizepolicy>
        </property>
        <property name="text">
         <string>PushButton</string>
        </property>
       </widget>
      </item>
     </layout>
    </widget>
   </item>
  </layout>
 </widget>
 <resources/>
 <connections/>
</ui>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

我在XML中看到Maximum大小政策。转到按钮&#39; Designer中的属性,并将大小策略更改为Expanding。还要确保按钮宽度相同(或者如果您需要不同的宽度按钮,则使用正确的比例)。

或者,您可以保留Maximum政策,只需将宽度增加到您想要的最大按钮宽度,如2000,以允许10000像素宽的未来显示...有很多方法可以实现所需的上浆行为。选择最能描述您想要的内容,在这种情况下可能是MinimumExpanding

请参阅QSizePolicy docs