[QtGui module]

该QSplitterHandle类提供处理分离器的功能。More…

继承QWidget

Methods

  • __init__ (self, Qt.Orientation o, QSplitter parent)
  • int closestLegalPosition (self, int p)
  • bool event (self, QEvent)
  • mouseMoveEvent (self, QMouseEvent)
  • mousePressEvent (self, QMouseEvent)
  • mouseReleaseEvent (self, QMouseEvent)
  • moveSplitter (self, int p)
  • bool opaqueResize (self)
  • Qt.Orientation orientation (self)
  • paintEvent (self, QPaintEvent)
  • resizeEvent (self, QResizeEvent)
  • setOrientation (self, Qt.Orientation o)
  • QSize sizeHint (self)
  • QSplitter splitter (self)

Detailed Description

该QSplitterHandle类提供处理分离器的功能。

QSplitterHandle通常人们所认为的,当他们想到一个分离器。它是用于调整大小的窗口小部件的把手。

用一个典型的开发QSplitter永远不用担心QSplitterHandle 。提供它是为了谁想要分配器手柄,提供额外的功能,如弹出式菜单的开发。

典型的方法之一将创造分配器手柄是子类化QSplitter然后重新实现QSplitter.createHandle( )实例化自定义的分配器手柄。例如,最小QSplitter子类可能看起来像这样:

  1. class Splitter : public [QSplitter](docs_qsplitter.html)
  2. {
  3. public:
  4. Splitter([Qt](docs_qt.html).Orientation orientation, [QWidget](docs_qwidget.html) *parent = 0);
  5. protected:
  6. QSplitterHandle *createHandle();
  7. };

createHandle()实现简单地构造了一个自定义的分配器手柄,称为Splitter在这个例子中:

  1. QSplitterHandle *Splitter.createHandle()
  2. {
  3. return new SplitterHandle(orientation(), this);
  4. }

对一个给定的句柄信息可以使用类似的功能来获得orientation()和opaqueResize() ,并从它的父分离器检索。像这些细节可以用来给定制处理不同的外观取决于分离器的方向。

该自定义手柄子类的复杂性取决于它需要执行的任务。一个简单的子类可能只提供一个paintEvent()实现:

  1. void SplitterHandle.paintEvent([QPaintEvent](docs_qpaintevent.html) *event)
  2. {
  3. [QPainter](docs_qpainter.html) painter(this);
  4. if (orientation() == [Qt](docs_qt.html).Horizontal) {
  5. gradient.setStart(rect().left(), rect().height()/2);
  6. gradient.setFinalStop(rect().right(), rect().height()/2);
  7. } else {
  8. gradient.setStart(rect().width()/2, rect().top());
  9. gradient.setFinalStop(rect().width()/2, rect().bottom());
  10. }
  11. painter.fillRect(event->rect(), [QBrush](docs_qbrush.html)(gradient));
  12. }

在该示例中,预定义的梯度设置不同,这取决于手柄的方向。 QSplitterHandle提供了一个合理的尺寸暗示的手柄,所以子类并不需要提供一个重新实现sizeHint( ),除非手柄有特殊尺寸要求。


Method Documentation

  1. QSplitterHandle.__init__ (self, Qt.Orientation o, QSplitter parent)

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

创建QSplitter用给定的处理orientationQSplitter parent

  1. int QSplitterHandle.closestLegalPosition (self, int p)

返回最接近的合法地位pos的分路器手柄。该位置从分离器的左边或顶边测量,即使是从右到左的语言。

See also QSplitter.closestLegalPosition()和moveSplitter( ) 。

  1. bool QSplitterHandle.event (self, QEvent)

从重新实现QObject.event( ) 。

  1. QSplitterHandle.mouseMoveEvent (self, QMouseEvent)

从重新实现QWidget.mouseMoveEvent( ) 。

  1. QSplitterHandle.mousePressEvent (self, QMouseEvent)

从重新实现QWidget.mousePressEvent( ) 。

  1. QSplitterHandle.mouseReleaseEvent (self, QMouseEvent)

从重新实现QWidget.mouseReleaseEvent( ) 。

  1. QSplitterHandle.moveSplitter (self, int p)

告诉分路器来移动该句柄来定位pos,它是从微件的左边缘或上边缘之间的距离。

需要注意的是pos也从左侧(或顶部)测量从右到左的语言。这个函数将映射pos调用前的适当位置QSplitter.moveSplitter( ) 。

See also QSplitter.moveSplitter()和closestLegalPosition( ) 。

  1. bool QSplitterHandle.opaqueResize (self)

返回True如果部件是动态调整大小(不透明) ,否则返回False 。这个值是由控制QSplitter

See also QSplitter.opaqueResize( ) 。

  1. Qt.Orientation QSplitterHandle.orientation (self)

返回手柄的方向。这通常是由传播QSplitter

See also setOrientation()和QSplitter.orientation( ) 。

  1. QSplitterHandle.paintEvent (self, QPaintEvent)

从重新实现QWidget.paintEvent( ) 。

  1. QSplitterHandle.resizeEvent (self, QResizeEvent)

从重新实现QWidget.resizeEvent( ) 。

  1. QSplitterHandle.setOrientation (self, Qt.Orientation o)

设置分离器手柄的方向向orientation。这通常是由传播QSplitter

See also orientation()和QSplitter.setOrientation( ) 。

  1. QSize QSplitterHandle.sizeHint (self)

从重新实现QWidget.sizeHint( ) 。

  1. QSplitter QSplitterHandle.splitter (self)

[

返回与此分路器句柄相关联的分离器。

](docs_qsplitter.html)

See also QSplitter.handle( ) 。