QRubberBand Class Reference

[QtGui module]

该QRubberBand类提供了一个矩形或线条,可以显示一个选择或边界。More…

继承QWidget

Types

  • enum Shape { Line, Rectangle }

Methods

  • __init__ (self, Shape, QWidget parent = None)
  • changeEvent (self, QEvent)
  • bool event (self, QEvent e)
  • initStyleOption (self, QStyleOptionRubberBand option)
  • move (self, QPoint p)
  • move (self, int ax, int ay)
  • moveEvent (self, QMoveEvent)
  • paintEvent (self, QPaintEvent)
  • resize (self, int w, int h)
  • resize (self, QSize s)
  • resizeEvent (self, QResizeEvent)
  • setGeometry (self, QRect r)
  • setGeometry (self, int ax, int ay, int aw, int ah)
  • Shape shape (self)
  • showEvent (self, QShowEvent)

Detailed Description

该QRubberBand类提供了一个矩形或线条,可以显示一个选择或边界。

一种橡胶带通常用来显示一个新的边界区域(如在一个QSplitterQDockWidget那是出坞) 。历史上使用这种已实施QPainter和XOR ,但这种方法并不总是正确的,因为渲染可能发生在下面的橡皮筋​​窗口工作,但橡皮筋之前已经被“抹掉” 。

每当你需要渲染围绕一个给定区域橡皮筋(或代表一行),你可以创建一个QRubberBand ,然后调用setGeometry( )move()或resize()来定位并调整其大小。一个常见的模式是这样做与鼠标事件一起使用。例如:

  1. void Widget.mousePressEvent([QMouseEvent](qmouseevent.html) *event)
  2. {
  3. origin = event->pos();
  4. if (!rubberBand)
  5. rubberBand = new QRubberBand(QRubberBand.Rectangle, this);
  6. rubberBand->setGeometry([QRect](qrect.html)(origin, [QSize](qsize.html)()));
  7. rubberBand->show();
  8. }
  9. void Widget.mouseMoveEvent([QMouseEvent](qmouseevent.html) *event)
  10. {
  11. rubberBand->setGeometry([QRect](qrect.html)(origin, event->pos()).normalized());
  12. }
  13. void Widget.mouseReleaseEvent([QMouseEvent](qmouseevent.html) *event)
  14. {
  15. rubberBand->hide();
  16. // determine selection, for example using QRect.intersects()
  17. // and QRect.contains().
  18. }

如果你传递一个父QRubberBand的构造函数,橡皮筋将只显示内部其父,但停留在其他的子控件的顶部。如果没有父母传递, QRubberBand将作为一个顶级窗口部件。

Call show()以使橡胶带清晰可见;也当橡胶带不是顶层。隐藏或销毁的部件将使得橡胶带消失。橡胶带可以是一个RectangleLine(垂直或水平) ,这取决于shape( )获给予该建造。


Type Documentation

  1. QRubberBand.Shape

此枚举指定什么形状的QRubberBand应该有。这是向下传递到样式系统的绘图提示,并且可以由每个被解释QStyle

Constant Value Description
QRubberBand.Line 0 A QRubberBand可以代表一个垂直或水平线。几何中仍给予rect( )而行,将填补在大多数款式给定的几何形状。
QRubberBand.Rectangle 1 A QRubberBand可以表示一个矩形。有些款式会将此解释为填充(通常半透明)长方形或矩形轮廓。

Method Documentation

  1. QRubberBand.__init__ (self, Shape, QWidget parent = None)

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

构造形状的橡皮筋s,与父p

默认情况下,一个长方形的橡胶带(s is Rectangle)将使用的掩模,使该矩形的小边界是所有可见。有些款式(例如,原生的Mac OS X )将改变这一点,并调用QWidget.setWindowOpacity( )方法使一个半透明填充选择矩形。

  1. QRubberBand.changeEvent (self, QEvent)

从重新实现QWidget.changeEvent( ) 。

  1. bool QRubberBand.event (self, QEvent e)

从重新实现QObject.event( ) 。

  1. QRubberBand.initStyleOption (self, QStyleOptionRubberBand option)

初始化option与其它的值QRubberBand。当他们需要一个这种方法是有用的子类QStyleOptionRubberBand,但不希望在所有的信息填写自己。

See also QStyleOption.initFrom( ) 。

  1. QRubberBand.move (self, QPoint p)

移动橡皮筋到点(xy) 。

See also resize( ) 。

  1. QRubberBand.move (self, int ax, int ay)

这是一个重载函数。

移动橡皮筋指向p

See also resize( ) 。

  1. QRubberBand.moveEvent (self, QMoveEvent)

从重新实现QWidget.moveEvent( ) 。

  1. QRubberBand.paintEvent (self, QPaintEvent)

从重新实现QWidget.paintEvent( ) 。

  1. QRubberBand.resize (self, int w, int h)

调整大小的橡皮筋​​,使得其宽度为width,它的高度是height

See also move( ) 。

  1. QRubberBand.resize (self, QSize s)

这是一个重载函数。

调整大小的橡皮筋​​,使新的大小是size

See also move( ) 。

  1. QRubberBand.resizeEvent (self, QResizeEvent)

从重新实现QWidget.resizeEvent( ) 。

  1. QRubberBand.setGeometry (self, QRect r)

设置橡皮筋的几何rect,它的父窗口部件的坐标系中指定。

See also QWidget.geometry

  1. QRubberBand.setGeometry (self, int ax, int ay, int aw, int ah)

这是一个重载函数。

设置橡皮的几何形状,其左上角位于该点的矩形(xy)中,用由指定的尺寸widthheight。几何体指定的父窗口部件的坐标系中。

  1. Shape QRubberBand.shape (self)

[

返回此橡皮筋的形状。形状只能在构造设置。

  1. QRubberBand.showEvent (self, QShowEvent)

]($docs-qrubberband.html#Shape-enum)

从重新实现QWidget.showEvent( ) 。