QGraphicsLinearLayout Class Reference
[QtGui module]
该QGraphicsLinearLayout类提供了在图形视图管理部件的水平或垂直布局。More…
Methods
__init__ (self, QGraphicsLayoutItem parent = None)
__init__ (self, Qt.Orientation orientation, QGraphicsLayoutItem parent = None)
addItem (self, QGraphicsLayoutItem item)
addStretch (self, int stretch = 1)
Qt.Alignment alignment (self, QGraphicsLayoutItem item)
int count (self)
insertItem (self, int index, QGraphicsLayoutItem item)
insertStretch (self, int index, int stretch = 1)
invalidate (self)
QGraphicsLayoutItem itemAt (self, int index)
float itemSpacing (self, int index)
Qt.Orientation orientation (self)
removeAt (self, int index)
removeItem (self, QGraphicsLayoutItem item)
setAlignment (self, QGraphicsLayoutItem item, Qt.Alignment alignment)
setGeometry (self, QRectF rect)
setItemSpacing (self, int index, float spacing)
setOrientation (self, Qt.Orientation orientation)
setSpacing (self, float spacing)
setStretchFactor (self, QGraphicsLayoutItem item, int stretch)
QSizeF sizeHint (self, Qt.SizeHint which, QSizeF constraint = QSizeF())
float spacing (self)
int stretchFactor (self, QGraphicsLayoutItem item)
Detailed Description
该QGraphicsLinearLayout类提供了在图形视图管理部件的水平或垂直布局。
的默认方向的线性布局Qt.Horizontal。你可以通过调用选择垂直方向或者setOrientation(),或者通过使Qt.Vertical到QGraphicsLinearLayout的构造函数。
使用QGraphicsLinearLayout最常用的方法是通过调用构造一个对象在堆中,没有父母,添加控件和布局addItem() ,最后是布局呼叫分配给一个小部件QGraphicsWidget.setLayout( ) 。
[QGraphicsScene](qgraphicsscene.html) scene;
[QGraphicsWidget]($docs-qgraphicswidget.html) *textEdit = scene.addWidget(new [QTextEdit](qtextedit.html));
[QGraphicsWidget]($docs-qgraphicswidget.html) *pushButton = scene.addWidget(new [QPushButton](qpushbutton.html));
QGraphicsLinearLayout *layout = new QGraphicsLinearLayout;
layout->addItem(textEdit);
layout->addItem(pushButton);
[QGraphicsWidget]($docs-qgraphicswidget.html) *form = new [QGraphicsWidget]($docs-qgraphicswidget.html);
form->setLayout(layout);
scene.addItem(form);
您可以添加小部件,布局,延伸(addStretch( )insertStretch()或setStretchFactor()),和间隔(setItemSpacing( )),以线性布局。布局需要的物品的所有权。在某些情况下,当项目的布局也继承自QGraphicsItem(如QGraphicsWidget)会有因为布局项目属于两个层次的所有权所有权的模糊性。看到的文档QGraphicsLayoutItem.setOwnedByLayout( )如何处理这个问题。你可以通过调用访问布局每个项目count()和itemAt( ) 。调用removeAt()或removeItem( )会从布局中删除某个项目,而不破坏它。
Size Hints and Size Policies in QGraphicsLinearLayout
QGraphicsLinearLayout尊重每个项目的大小提示和大小政策,并在布局包含了更多的空间比中的项目可以填写,每个项目是根据该项目的布局的对齐方式排列。你可以通过调用设置每个项目的对齐方式setAlignment( ) ,并通过调用检查对齐任何项目alignment( ) 。默认情况下,项目是一致的左上角。
Spacing within QGraphicsLinearLayout
项目之间的布局分配一些空间。空间的实际大小取决于管理widget的当前样式,但共同的间距为4 。您也可以设定自己的间距致电setSpacing( ) ,并通过调用获取当前的间距值spacing( ) 。如果要配置单独的间距为你的项目,你可以调用setItemSpacing( ) 。
Stretch Factor in QGraphicsLinearLayout
您可以指定一个拉伸因子在每个项目控制多少空间,它会得到比其他项目。默认情况下,布置成线性布置两个相同的部件将具有相同的大小,但是如果第一部件具有1的拉伸系数和所述第二部件具有2的拉伸系数,所述第一部件将获取可用的三分之一空间中,而第二个将得到的2/3 。
QGraphicsLinearLayout计算大小加起来的所有项目的拉伸系数,然后相应地将所述可用空间的分配。默认拉伸系数为0的所有项目;因数为0表示该项目没有任何定义的伸展系数,有效,这是一样的拉伸系数设置为1 。上的伸长率只适用于在可用空间中的布局(以下其方向)的长度方向。如果你想控制的项目的水平和垂直拉伸两种,您可以使用QGraphicsGridLayout代替。
QGraphicsLinearLayout Compared to Other Layouts
QGraphicsLinearLayout是非常相似的QVBoxLayout和QHBoxLayout的,但在对比这些类,它是用来管理QGraphicsWidget和QGraphicsLayout而不是QWidget和QLayout。
Method Documentation
QGraphicsLinearLayout.__init__ (self, QGraphicsLayoutItem parent = None)
该parent的说法,如果不是没有,原因self通过Qt的,而不是PyQt的拥有。
构造一个QGraphicsLinearLayout例如使用Qt.Horizontal方向。parent被传递给QGraphicsLayout的构造。
QGraphicsLinearLayout.__init__ (self, Qt.Orientation orientation, QGraphicsLayoutItem parent = None)
该parent的说法,如果不是没有,原因self通过Qt的,而不是PyQt的拥有。
构造一个QGraphicsLinearLayout实例。您可以通过orientation对于布局,无论是水平或垂直,并parent被传递给QGraphicsLayout的构造。
QGraphicsLinearLayout.addItem (self, QGraphicsLayoutItem item)
该item说法有它的所有权转移给Qt的。
这个方便的功能等同于调用InsertItem将(-1 ,item) 。
QGraphicsLinearLayout.addStretch (self, int stretch = 1)
这个方便的功能等同于调用insertStretch (-1 ,stretch) 。
Qt.Alignment QGraphicsLinearLayout.alignment (self, QGraphicsLayoutItem item)
返回对齐item。默认的对齐方式是Qt.AlignTop|Qt.AlignLeft。
对齐决定如何该项目的情况下那里的布局腾出更多可用空间比小部件可以佔据的位置分配给它的空间内。
See also setAlignment( ) 。
int QGraphicsLinearLayout.count (self)
从重新实现QGraphicsLayout.count( ) 。
QGraphicsLinearLayout.insertItem (self, int index, QGraphicsLayoutItem item)
该item说法有它的所有权转移给Qt的。
Inserts item在进入布局index,或者说是目前在任何项目之前,index。
See also addItem( )itemAt( )insertStretch()和setItemSpacing( ) 。
QGraphicsLinearLayout.insertStretch (self, int index, int stretch = 1)
插入一片stretch在index,或者说是目前在任何项目之前,index。
See also addStretch( )setStretchFactor( )setItemSpacing()和insertItem( ) 。
QGraphicsLinearLayout.invalidate (self)
从重新实现QGraphicsLayout.invalidate( ) 。
QGraphicsLayoutItem QGraphicsLinearLayout.itemAt (self, int index)
从重新实现QGraphicsLayout.itemAt( ) 。
当从0迭代和时,它会返回在视觉排列顺序选择项目。
float QGraphicsLinearLayout.itemSpacing (self, int index)
项目后返回的间距在index。
See also setItemSpacing( ) 。
Qt.Orientation QGraphicsLinearLayout.orientation (self)
[
返回布局方向。
]($docs-qt.html#Orientation-enum)
See also setOrientation( ) 。
QGraphicsLinearLayout.removeAt (self, int index)
从重新实现QGraphicsLayout.removeAt( ) 。
在删除的项目index不破坏它。该项目的所有权转移给调用者。
See also removeItem()和insertItem( ) 。
QGraphicsLinearLayout.removeItem (self, QGraphicsLayoutItem item)
该item争论
移除item从而不破坏它的布局。所有权item传送到呼叫者。
See also removeAt()和insertItem( ) 。
QGraphicsLinearLayout.setAlignment (self, QGraphicsLayoutItem item, Qt.Alignment alignment)
设置的对齐方式item至alignment。如果item的排列变化,布局会自动失效。
See also alignment()和invalidate( ) 。
QGraphicsLinearLayout.setGeometry (self, QRectF rect)
从重新实现QGraphicsLayoutItem.setGeometry( ) 。
QGraphicsLinearLayout.setItemSpacing (self, int index, float spacing)
在项目建成后的间距index至spacing。
See also itemSpacing( ) 。
QGraphicsLinearLayout.setOrientation (self, Qt.Orientation orientation)
改变布局方向,以orientation。更改布局方向的布局将自动失效。
See also orientation( ) 。
QGraphicsLinearLayout.setSpacing (self, float spacing)
设置布局的间距spacing。间距是指件之间的垂直距离和水平距离。
See also spacing( )setItemSpacing( )setStretchFactor()和QGraphicsGridLayout.setSpacing( ) 。
QGraphicsLinearLayout.setStretchFactor (self, QGraphicsLayoutItem item, int stretch)
设置为拉伸因子item至stretch。如果项目的伸展系数的变化,这个功能将使布局失效。
Setting stretch到0删除从产品上的伸长率,和实际上等同于设置stretch为1。
See also stretchFactor( ) 。
QSizeF QGraphicsLinearLayout.sizeHint (self, Qt.SizeHint which, QSizeF constraint = QSizeF())
从重新实现QGraphicsLayoutItem.sizeHint( ) 。
float QGraphicsLinearLayout.spacing (self)
返回布局的间距。间距是指件之间的垂直距离和水平距离。
See also setSpacing( ) 。
int QGraphicsLinearLayout.stretchFactor (self, QGraphicsLayoutItem item)
返回的拉伸因子item。默认拉伸系数为0 ,这意味着该项目已没有分配的拉伸因子。
See also setStretchFactor( ) 。