2012-11-13 55 views
0

我有一個帶有標籤和QGraphicsView的垂直佈局。我已經設置了QGraphicsView的最大尺寸,並將水平對齊設置爲AlignHCenter,但它似乎仍然出現在左側而不是已知的?這裏是一個演示UI文件:最大尺寸的小工具沒有遵循AlignHCenter

<?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> 

如果我改變標籤的水平對齊方式,它的行爲,我期望(左移動到左邊,AlignHCenter它移動到中心),但的QGraphicsView不遵循這種行爲 - 它總是在左邊。

我該如何居中這個固定大小的QGraphicsView?

回答

1

如果您纏繞的QGraphicsView在QHBoxLayout,負責如然後它會出現在中心像你期望的那樣。如果您想將其對齊到任一側,您可以在左側或右側插入水平間隔器。

alignment property控制其行爲時的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>