QtDesigner-两个不同大小的相同组合框

时间:2019-01-24 15:51:53

标签: python qt user-interface pyqt5 qt-designer

我正在研究一个小的测试程序(一个翻译器),以进入QtDesigner。 这就是设计器中的样子:

enter image description here

如您所见,两个组合框的宽度不同-我没有手动更改任何宽度值,仅更改了alingment和布局。除了文本之外,整个左半部分和右半部分都是相同的, 除外,左文本字段是QTextEdit,右文本字段是QTextBrowser。

这似乎也与组合框中存储的项目无关,而且可悲的是,我无法手动更改项目的大小,因为它们似乎绑定在布局中。

有人可以告诉我这是怎么回事吗?这不是什么大问题,但是看起来很伤心。

<?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>711</width>
    <height>402</height>
   </rect>
  </property>
  <property name="maximumSize">
   <size>
    <width>790</width>
    <height>402</height>
   </size>
  </property>
  <property name="windowTitle">
   <string>MainWindow</string>
  </property>
  <widget class="QWidget" name="centralwidget">
   <property name="minimumSize">
    <size>
     <width>663</width>
     <height>0</height>
    </size>
   </property>
   <property name="maximumSize">
    <size>
     <width>795</width>
     <height>414</height>
    </size>
   </property>
   <layout class="QGridLayout" name="gridLayout_2">
    <item row="0" column="0">
     <layout class="QGridLayout" name="gridLayout">
      <item row="0" column="0">
       <layout class="QVBoxLayout" name="InputLayout">
        <item alignment="Qt::AlignHCenter">
         <widget class="QLabel" name="Label_Input">
          <property name="text">
           <string>Input:</string>
          </property>
         </widget>
        </item>
        <item>
         <widget class="QTextEdit" name="Text_Input">
          <property name="undoRedoEnabled">
           <bool>false</bool>
          </property>
          <property name="html">
           <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
          </property>
         </widget>
        </item>
        <item>
         <widget class="QComboBox" name="Combo_Input">
          <property name="enabled">
           <bool>true</bool>
          </property>
          <item>
           <property name="text">
            <string>Auto</string>
           </property>
          </item>
          <item>
           <property name="text">
            <string>en</string>
           </property>
          </item>
          <item>
           <property name="text">
            <string>de</string>
           </property>
          </item>
         </widget>
        </item>
       </layout>
      </item>
      <item row="0" column="1">
       <layout class="QVBoxLayout" name="ButtonLayout">
        <item>
         <widget class="QPushButton" name="Button_Translate">
          <property name="text">
           <string>=&gt;</string>
          </property>
         </widget>
        </item>
        <item>
         <widget class="QPushButton" name="Button_Swap">
          <property name="text">
           <string>&lt;-&gt;</string>
          </property>
         </widget>
        </item>
       </layout>
      </item>
      <item row="0" column="2">
       <layout class="QVBoxLayout" name="OutputLayout">
        <item alignment="Qt::AlignHCenter">
         <widget class="QLabel" name="Label_Output">
          <property name="text">
           <string>Translated result:</string>
          </property>
         </widget>
        </item>
        <item>
         <widget class="QTextBrowser" name="Text_Output">
          <property name="html">
           <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p align=&quot;center&quot; style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
          </property>
         </widget>
        </item>
        <item>
         <widget class="QComboBox" name="Combo_Output">
          <item>
           <property name="text">
            <string>en</string>
           </property>
          </item>
          <item>
           <property name="text">
            <string>de</string>
           </property>
          </item>
         </widget>
        </item>
       </layout>
      </item>
     </layout>
    </item>
   </layout>
  </widget>
 </widget>
 <resources/>
 <connections/>
</ui>

我试图解决此问题时遇到的另一个大问题是,即使我按ctrl + z组合键后,在中断布局并设置其最小大小后,我也无法再更改组合框的对齐方式-

1 个答案:

答案 0 :(得分:1)

您可以通过在minimumsize部分中设置较高的值来解决此问题。 例如,尝试将最小宽度设置为30px。

  

编辑:通过避免使用setAlignment并使用QSpacer代替它来解决了问题