PySide6.QtWidgets.QRubberBand¶
- class QRubberBand¶
QRubberBand类提供了一个矩形或线条,可以用来表示选择或边界。更多…概要¶
方法¶
def
__init__()def
shape()
虚拟方法¶
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
橡皮筋通常用于显示一个新的边界区域(如在
QSplitter或正在停靠的QDockWidget中)。历史上,这是通过使用QPainter和XOR来实现的,但这种方法并不总是有效,因为渲染可能会在橡皮筋下方的窗口中发生,但在橡皮筋被“擦除”之前。你可以在需要渲染一个橡皮筋围绕给定区域(或表示单条线)时创建一个
QRubberBand,然后调用setGeometry()、move()或resize()来定位和调整其大小。常见的模式是与鼠标事件结合使用。例如:def mousePressEvent(self, event): origin = event.pos() if not rubberBand: rubberBand = QRubberBand(QRubberBand.Rectangle, self) rubberBand.setGeometry(QRect(origin, QSize())) rubberBand.show() def mouseMoveEvent(self, event): rubberBand.setGeometry(QRect(origin, event.pos()).normalized()) def mouseReleaseEvent(self, event): rubberBand.hide() # determine selection, for example using QRect::intersects() # and QRect::contains().
如果你传递一个父对象给
QRubberBand的构造函数,橡皮筋将只在其父对象内部显示,但会保持在其他子部件之上。如果没有传递父对象,QRubberBand将作为一个顶级部件。调用
show()使橡皮筋可见;即使橡皮筋不是顶层的。隐藏或销毁小部件将使橡皮筋消失。橡皮筋可以是Rectangle或Line(垂直或水平),具体取决于构造时给定的shape()。- class Shape¶
此枚举指定了
QRubberBand应具有的形状。这是一个传递给样式系统的绘图提示,可以由每个QStyle解释。常量
描述
QRubberBand.Line
QRubberBand可以表示一条垂直线或水平线。几何形状仍然在rect()中给出,并且在大多数样式中,线条将填充给定的几何形状。QRubberBand.Rectangle
QRubberBand可以表示一个矩形。某些样式会将其解释为填充(通常是半透明的)矩形,或矩形轮廓。
构造一个形状为
s的橡皮筋,父对象为p。默认情况下,矩形橡皮筋(
s是Rectangle)将使用遮罩,因此只有矩形的小边框可见。某些样式(例如,原生 macOS)会改变这一点,并调用setWindowOpacity()来创建一个半透明的填充选择矩形。- initStyleOption(option)¶
- Parameters:
使用来自此
QRubberBand的值初始化option。当子类需要QStyleOptionRubberBand但不想自己填写所有信息时,此方法非常有用。另请参阅
返回此橡皮筋的形状。形状只能在构造时设置。