1

だから私は Qt Designer で作成した小さなプログラムを持っています。ほとんどの場合、それは完全に問題ありません。しかし、厄介な問題が 1 つあります。

テキストが長すぎることがQLabelあるので、テキストを折り返す必要があります。これは簡単な作業です。

ワードラップなしの場合は次のようになります

ここに画像の説明を入力

そして、これは問題ありません。しかし、テキストが長くなりすぎると、ひどいスクロール バーが表示されます。これはしたくないので、wordwrap を有効にします。しかし、これが起こります:

ここに画像の説明を入力

最初は Qt Designer がくだらないと思っていたので、コンパイルして実行して、それがなくなることを願っていました。これは時々起こるので、それは合理的な仮定だと思いました。

そうではありませんでした。

ここに画像の説明を入力

一体どうしてこんなことになってしまうの!?

編集:ウィジェット初期化子でワードラップを手動で有効にすると、同じ動作が発生するため、Qt Designer が原因ではなく、他の場所で問題になります。どんな助けでも大歓迎です!

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>705</width>
    <height>347</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>Title</string>
  </property>
  <property name="windowIcon">
   <iconset resource="icons.qrc">
    <normaloff>:/icons/icons/3/bonus48x48_20.png</normaloff>:/icons/icons/3/bonus48x48_20.png</iconset>
  </property>
  <widget class="QWidget" name="centralwidget">
   <layout class="QGridLayout" name="gridLayout" columnstretch="0,1,1">
    <item row="1" column="0">
     <widget class="QLabel" name="label_molecule">
      <property name="text">
       <string>Molecule:</string>
      </property>
     </widget>
    </item>
    <item row="1" column="1">
     <widget class="QLineEdit" name="lineEdit_molecule"/>
    </item>
    <item row="2" column="0" colspan="2">
     <widget class="QToolBox" name="toolBox_modelDetails">
      <property name="currentIndex">
       <number>0</number>
      </property>
      <widget class="QWidget" name="page_isomer">
       <property name="geometry">
        <rect>
         <x>0</x>
         <y>0</y>
         <width>373</width>
         <height>154</height>
        </rect>
       </property>
       <attribute name="label">
        <string>Isomer</string>
       </attribute>
       <layout class="QVBoxLayout" name="verticalLayout">
        <item>
         <widget class="QListWidget" name="listWidget_isomers">
          <property name="alternatingRowColors">
           <bool>true</bool>
          </property>
         </widget>
        </item>
       </layout>
      </widget>
      <widget class="QWidget" name="page_model">
       <property name="geometry">
        <rect>
         <x>0</x>
         <y>0</y>
         <width>357</width>
         <height>231</height>
        </rect>
       </property>
       <attribute name="label">
        <string>Model</string>
       </attribute>
       <layout class="QVBoxLayout" name="verticalLayout_2" stretch="0,0">
        <item>
         <widget class="QListWidget" name="listWidget_models">
          <property name="sizePolicy">
           <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
            <horstretch>0</horstretch>
            <verstretch>0</verstretch>
           </sizepolicy>
          </property>
          <property name="font">
           <font>
            <stylestrategy>PreferDefault</stylestrategy>
           </font>
          </property>
          <property name="lineWidth">
           <number>1</number>
          </property>
          <property name="alternatingRowColors">
           <bool>true</bool>
          </property>
         </widget>
        </item>
        <item>
         <widget class="QLabel" name="label_description">
          <property name="text">
           <string>Howdy!</string>
          </property>
          <property name="wordWrap">
           <bool>true</bool>
          </property>
         </widget>
        </item>
       </layout>
      </widget>
      <widget class="QWidget" name="page_basisSet">
       <property name="geometry">
        <rect>
         <x>0</x>
         <y>0</y>
         <width>373</width>
         <height>154</height>
        </rect>
       </property>
       <attribute name="label">
        <string>Basis Set</string>
       </attribute>
       <layout class="QVBoxLayout" name="verticalLayout_3">
        <item>
         <widget class="QListWidget" name="listWidget_basisSets">
          <property name="alternatingRowColors">
           <bool>true</bool>
          </property>
         </widget>
        </item>
       </layout>
      </widget>
     </widget>
    </item>
    <item row="3" column="0" colspan="3">
     <layout class="QHBoxLayout" name="horizontalLayout_buttons">
      <item>
       <spacer name="horizontalSpacer_buttons">
        <property name="orientation">
         <enum>Qt::Horizontal</enum>
        </property>
        <property name="sizeHint" stdset="0">
         <size>
          <width>40</width>
          <height>20</height>
         </size>
        </property>
       </spacer>
      </item>
      <item>
       <widget class="QPushButton" name="pushButton_save">
        <property name="text">
         <string>Save Input File</string>
        </property>
       </widget>
      </item>
      <item>
       <widget class="QPushButton" name="pushButton_open">
        <property name="text">
         <string>Open</string>
        </property>
       </widget>
      </item>
     </layout>
    </item>
    <item row="1" column="2" rowspan="2">
     <widget class="QGroupBox" name="groupBox_MoleculeViewer">
      <property name="title">
       <string>Molecule</string>
      </property>
     </widget>
    </item>
   </layout>
  </widget>
  <widget class="QStatusBar" name="statusbar"/>
 </widget>
 <resources>
  <include location="icons.qrc"/>
 </resources>
 <connections/>
</ui>
4

2 に答える 2

1

QLabelウィジェット (およびQListWidget) を にネストするのはなぜQWidgetですか?

そのため、2 つのスクロールバーが表示されます。からの 1 つQListWidget。表示できる数よりも多くのアイテムがあるためです。もう 1 つは親用QWidgetです。

layoutsを使用する必要があります。

これはあなたが持っているものです:

ここに画像の説明を入力

次のようになります。

ここに画像の説明を入力

于 2013-07-11T20:01:45.147 に答える