QSplitter Class Reference

[QtGui module]

该QSplitter类实现分离器部件。More…

继承QFrame

Methods

  • __init__ (self, QWidget parent = None)
  • __init__ (self, Qt.Orientation orientation, QWidget parent = None)
  • addWidget (self, QWidget widget)
  • changeEvent (self, QEvent)
  • childEvent (self, QChildEvent)
  • bool childrenCollapsible (self)
  • int closestLegalPosition (self, int, int)
  • int count (self)
  • QSplitterHandle createHandle (self)
  • bool event (self, QEvent)
  • (int, int) getRange (self, int index)
  • QSplitterHandle handle (self, int index)
  • int handleWidth (self)
  • int indexOf (self, QWidget w)
  • insertWidget (self, int index, QWidget widget)
  • bool isCollapsible (self, int index)
  • QSize minimumSizeHint (self)
  • moveSplitter (self, int pos, int index)
  • bool opaqueResize (self)
  • Qt.Orientation orientation (self)
  • refresh (self)
  • resizeEvent (self, QResizeEvent)
  • bool restoreState (self, QByteArray state)
  • QByteArray saveState (self)
  • setChildrenCollapsible (self, bool)
  • setCollapsible (self, int index, bool)
  • setHandleWidth (self, int)
  • setOpaqueResize (self, bool opaque = True)
  • setOrientation (self, Qt.Orientation)
  • setRubberBand (self, int position)
  • setSizes (self, list-of-int list)
  • setStretchFactor (self, int index, int stretch)
  • QSize sizeHint (self)
  • list-of-int sizes (self)
  • QWidget widget (self, int index)

Special Methods

  • __len__ (self)

Qt Signals

  • void splitterMoved (int,int)

Detailed Description

该QSplitter类实现分离器部件。

分离器可以让用户通过拖动孩子们之间的边界控制子控件的大小。任何数量的微件可以由单个分离器进行控制。典型的使用QSplitter的是创建了几个小部件,并使用它们添加insertWidget()或addWidget( ) 。

下面的例子将显示一个QListViewQTreeViewQTextEdit并排,有两个分配器手柄:

  1. QSplitter *splitter = new QSplitter(parent);
  2. [QListView]($docs-qlistview.html) *listview = new [QListView]($docs-qlistview.html);
  3. [QTreeView]($docs-qtreeview.html) *treeview = new [QTreeView]($docs-qtreeview.html);
  4. [QTextEdit]($docs-qtextedit.html) *textedit = new [QTextEdit]($docs-qtextedit.html);
  5. splitter->addWidget(listview);
  6. splitter->addWidget(treeview);
  7. splitter->addWidget(textedit);

如果一个部件已经是一个QSplitter内部时,insertWidget()或addWidget( )被调用时,它会移动到新的位置。这可以用于以后重新排列在分离器的部件。您可以使用indexOf( )widget()和count( )进入到分离器内的部件。

默认QSplitter将其子水平(并排) ,你可以使用setOrientation (Qt.Vertical)垂直放置其子出来。

默认情况下,所有的widget可以大或小如用户意愿之间的minimumSizeHint( )(或minimumSize())和maximumSize小部件( ) 。

QSplitter默认情况下,动态调整​​其子。如果你宁愿QSplitter调整孩子只有在调整操作结束时,调用setOpaqueResize (假) 。

尺寸的小部件之间的初始分布是通过将初始大小与拉伸系数相乘确定。您也可以使用setSizes( )来设置所有的部件的尺寸。该功能sizes()返回由用户设置的大小。或者,您可以保存和恢复窗口小部件的大小从QByteArray using saveState()和restoreState( )分别。

当你hide( )一个子其空间将会是其他孩子分发。这将恢复当你show( )一次。


Method Documentation

  1. QSplitter.__init__ (self, QWidget parent = None)

parent的说法,如果不是没有,原因self通过Qt的,而不是PyQt的拥有。

构造一个水平拆分与parent传递给参数QFrame构造函数。

See also setOrientation( ) 。

  1. QSplitter.__init__ (self, Qt.Orientation orientation, QWidget parent = None)

parent的说法,如果不是没有,原因self通过Qt的,而不是PyQt的拥有。

构造一个分离器具有给定orientationparent

See also setOrientation( ) 。

  1. QSplitter.addWidget (self, QWidget widget)

widget说法有它的所有权转移给Qt的。

将给定widget所有其他项目后分流器的布局。

If widget已经在分离器,将被移动到新的位置。

See also insertWidget( )widget()和indexOf( ) 。

  1. QSplitter.changeEvent (self, QEvent)

从重新实现QWidget.changeEvent( ) 。

  1. QSplitter.childEvent (self, QChildEvent)

从重新实现QObject.childEvent( ) 。

告诉孩子小部件描述的分配器c已经被插入或移除。

这种方法也可以用来处理其中一个部件与所述分离器创建作为父母,但不与显式添加的情况insertWidget()或addWidget( ) 。这是为了兼容而不是将小部件成新的代码分离器的推荐方式。请使用insertWidget()或addWidget( )在新代码。

See also addWidget()和insertWidget( ) 。

  1. bool QSplitter.childrenCollapsible (self)
  1. int QSplitter.closestLegalPosition (self, int, int)

返回最接近的合法地位pos与索引窗口小部件的index

对于从右到左的语言,如阿拉伯语和希伯来语,水平分割的布局是相反的。位置然后从部件的右边缘测量。

See also getRange( ) 。

  1. int QSplitter.count (self)

返回包含在该分离器的布局的部件的数量。

See also widget()和handle( ) 。

  1. QSplitterHandle QSplitter.createHandle (self)

[

返回一个新的分流器句柄作为这个分配器的子部件。此功能可以在子类中重新实现来提供定制手柄的支持。

]($docs-qsplitterhandle.html)

See also handle()和indexOf( ) 。

  1. bool QSplitter.event (self, QEvent)

从重新实现QObject.event( ) 。

  1. (int, int) QSplitter.getRange (self, int index)

返回索引分离器的有效范围indexminmax如果minmax不为0。

  1. QSplitterHandle QSplitter.handle (self, int index)

[

在给定的返回句柄向左(或以上)在分离器的布局的项目index。索引为0的句柄总是隐藏。

对于从右到左的语言,如阿拉伯语和希伯来语,水平分割的布局是相反的。手柄将是小部件的权于index

]($docs-qsplitterhandle.html)

See also count( )widget( )indexOf( )createHandle()和setHandleWidth( ) 。

  1. int QSplitter.handleWidth (self)
  1. int QSplitter.indexOf (self, QWidget w)

返回索引中指定的分路器的布局widget。这也适用于手柄。

手柄的编号从0 。因为有子控件居然有手柄,但手柄位置0永远是隐藏的。

See also count()和widget( ) 。

  1. QSplitter.insertWidget (self, int index, QWidget widget)

widget说法有它的所有权转移给Qt的。

插入widget在给定的规定在分线器的布局index

If widget已经在分离器,将被移动到新的位置。

如果index是一个无效的索引,那么控件将被插入在最后。

See also addWidget( )indexOf()和widget( ) 。

  1. bool QSplitter.isCollapsible (self, int index)

返回True如果在部件index是可折叠的,否则返回False

  1. QSize QSplitter.minimumSizeHint (self)

从重新实现QWidget.minimumSizeHint( ) 。

  1. QSplitter.moveSplitter (self, int pos, int index)

将分割器手柄的左边缘或上边缘处index尽可能靠近定位pos,它是从微件的左边缘或上边缘之间的距离。

对于从右到左的语言,如阿拉伯语和希伯来语,水平分割的布局是相反的。pos然后,从部件的右边缘之间的距离。

See also splitterMoved( )closestLegalPosition()和getRange( ) 。

  1. bool QSplitter.opaqueResize (self)
  1. Qt.Orientation QSplitter.orientation (self)

[

  1. QSplitter.refresh (self)

更新分路器的状态。你不应该需要调用这个函数。

  1. QSplitter.resizeEvent (self, QResizeEvent)

]($docs-qt.html#Orientation-enum)

从重新实现QWidget.resizeEvent( ) 。

  1. bool QSplitter.restoreState (self, QByteArray state)

恢复分路器的布局到state规定。返回True如果状态恢复,否则返回False 。

通常,这是配合使用QSettings从过去的会话还原大小。下面是一个例子:

恢复分路器的状态:

  1. [QSettings]($docs-qsettings.html) settings;
  2. splitter->restoreState(settings.value("splitterSizes").toByteArray());

如果未能恢复分路器的布局可能会导致无效或外的最新数据所提供的字节数组中。

See also saveState( ) 。

  1. QByteArray QSplitter.saveState (self)

[

保存分路器的布局的状态。

]($docs-qbytearray.html)

通常,这是配合使用QSettings要记住的大小为今后的会议。版本号码被存储作为数据的一部分。下面是一个例子:

  1. [QSettings]($docs-qsettings.html) settings;
  2. settings.setValue("splitterSizes", splitter->saveState());

See also restoreState( ) 。

  1. QSplitter.setChildrenCollapsible (self, bool)
  1. QSplitter.setCollapsible (self, int index, bool)

设置是否在子构件索引index是可折叠collapse

默认情况下,孩子是可折叠的,这意味着用户可以调整下来,大小为0 ,即使他们有一个非零minimumSize()或minimumSizeHint( ) 。这种行为可以基于每个插件基础由通过设置在调用此函数,或全球范围内为在分离器的所有部件被改变的childrenCollapsible属性。

See also isCollapsible()和childrenCollapsible

  1. QSplitter.setHandleWidth (self, int)
  1. QSplitter.setOpaqueResize (self, bool opaque = True)
  1. QSplitter.setOrientation (self, Qt.Orientation)
  1. QSplitter.setRubberBand (self, int position)

显示一个橡皮筋的位置pos。如果pos为负时,该橡胶带被除去。

  1. QSplitter.setSizes (self, list-of-int list)

设置子控件的尺寸大小,以在给定的值list

如果分离器是水平的,该值设置每个插件的宽度以像素为单位,从左至右。如果分离器是垂直的,每个插件的高度被设置,从顶部到底部。

在多馀的值list将被忽略。如果list包含的值太少,结果是不确定的,但程序仍然会表现良好。

分配器部件的整体尺寸不会受到影响。相反,任何附加的/缺失的空间是按照体积的相对重量之间分配部件。

如果指定大小为0 ,该部件将是不可见的。是小部件的大小策略保存。即,值越小则相应小窗口的最小尺寸暗示将由暗示的值来代替。

See also sizes( ) 。

  1. QSplitter.setStretchFactor (self, int index, int stretch)

更新widget的大小政策在位置index以具有一个伸展因子stretch

stretch是不实际的伸展系数;的有效伸长率是通过采取小窗口的初始大小,并将其与计算出的乘法stretch

此功能提供了方便。它相当于

  1. [QWidget]($docs-qwidget.html) *widget = splitter->widget(index);
  2. [QSizePolicy](qsizepolicy.html) policy = widget->sizePolicy();
  3. policy.setHorizontalStretch(stretch);
  4. policy.setVerticalStretch(stretch);
  5. widget->setSizePolicy(policy);

See also setSizes()和widget( ) 。

  1. QSize QSplitter.sizeHint (self)

从重新实现QWidget.sizeHint( ) 。

  1. list-of-int QSplitter.sizes (self)

返回此分路器的所有部件的尺寸参数列表。

如果分离器的方向是水平的,该列表包含该部件的宽度以像素为单位,从左至右,如果方向是垂直的,该列表包含以像素为单位的窗口小部件的高度,从顶部到底部。

给出的值到另一个分路器的setSizes()函数,会产生具有相同的布局,这其中一个分离器。

需要注意的是看不见的小部件有大小为0 。

See also setSizes( ) 。

  1. QWidget QSplitter.widget (self, int index)

[

返回该插件在给定的index在分离器的布局。

]($docs-qwidget.html)

See also count( )handle( )indexOf()和insertWidget( ) 。

  1. QSplitter.__len__ (self)

Qt Signal Documentation

  1. void splitterMoved (int,int)

这是该信号的默认超载。

这个信号被发射时,分离器处理在一个特定的index已经被移动到位置pos

对于从右到左的语言,如阿拉伯语和希伯来语,水平分割的布局是相反的。pos然后,从部件的右边缘之间的距离。

See also moveSplitter( ) 。