0

ラベルとQGraphicsViewを使用した垂直レイアウトがあります。QGraphicsViewの最大サイズを設定し、水平方向の配置をAlignHCenterに設定しましたが、それでもセネターではなく左側に表示されるように見えますか?デモUIファイルは次のとおりです。

<?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="QVBoxLayout" name="verticalLayout">
   <item>
    <widget class="QLabel" name="label">
     <property name="text">
      <string>TextLabel</string>
     </property>
     <property name="alignment">
      <set>Qt::AlignCenter</set>
     </property>
    </widget>
   </item>
   <item>
    <widget class="QGraphicsView" name="graphicsView">
     <property name="sizePolicy">
      <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
       <horstretch>0</horstretch>
       <verstretch>0</verstretch>
      </sizepolicy>
     </property>
     <property name="maximumSize">
      <size>
       <width>100</width>
       <height>100</height>
      </size>
     </property>
    </widget>
   </item>
  </layout>
 </widget>
 <resources/>
 <connections/>
</ui>

ラベルの水平方向の配置を変更すると、期待どおりに動作します(Leftはラベルを左に移動し、AlignHCenterは中央に移動します)が、QGraphicsViewはその動作に従わず、常に左側にあります。

この固定サイズのQGraphicsViewをどのように中央に配置しますか?

4

1 に答える 1

1

図のようにQGraphicsViewをQHBoxLayoutでラップすると、期待どおりに中央に表示されます。どちらかの側に揃えたい場合は、左側または右側に水平スペーサーを挿入できます。

配置プロパティは、QGraphicsViewにスクロールバーがある場合の動作を制御します。QLayout内の相対位置は制御しません。

   <item>
    <layout class="QHBoxLayout" name="horizontalLayout">
     <item>
      <widget class="QGraphicsView" name="graphicsView">
       <property name="sizePolicy">
        <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
         <horstretch>0</horstretch>
         <verstretch>0</verstretch>
        </sizepolicy>
       </property>
       <property name="maximumSize">
        <size>
         <width>100</width>
         <height>100</height>
        </size>
       </property>
      </widget>
     </item>
    </layout>
   </item>
于 2012-11-13T21:05:08.360 に答える