PySide6.QtWidgets.QGraphicsScene

class QGraphicsScene

QGraphicsScene 类提供了一个用于管理大量二维图形项目的表面。更多

PySide6.QtWidgets.QGraphicsScene 的继承图

概要

属性

方法

虚拟方法

插槽

信号

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

该类作为QGraphicsItems的容器。它与QGraphicsView一起用于在二维表面上可视化图形项,如线条、矩形、文本,甚至是自定义项。QGraphicsSceneGraphics View Framework的一部分。

QGraphicsScene 还提供了功能,使您能够有效地确定项目的位置,并确定场景上任意区域内哪些项目是可见的。使用 QGraphicsView 小部件,您可以可视化整个场景,或者放大并仅查看场景的部分内容。

示例:

scene = QGraphicsScene()
scene.addText("Hello, world!")
view = QGraphicsView(scene)
view.show()

请注意,QGraphicsScene本身没有视觉外观;它只管理项目。您需要创建一个QGraphicsView小部件来可视化场景。

要向场景中添加项目,首先需要构建一个QGraphicsScene对象。然后,你有两种选择:要么通过调用addItem()来添加你现有的QGraphicsItem对象,要么可以调用其中一个便捷函数addEllipse()addLine()addPath()addPixmap()addPolygon()addRect()addText(),这些函数都会返回一个指向新添加项目的指针。使用这些函数添加的项目的尺寸是相对于项目的坐标系统的,并且项目的位置在场景中初始化为(0, 0)。

然后你可以使用QGraphicsView来可视化场景。当场景发生变化时(例如,当一个项目移动或变换时),QGraphicsScene会发出changed()信号。要移除一个项目,调用removeItem()

QGraphicsScene 使用索引算法来高效管理项目的位置。默认情况下,使用BSP(二叉空间分割)树;这是一种适用于大多数项目保持静态(即不移动)的大场景的算法。您可以通过调用setItemIndexMethod()来选择禁用此索引。有关可用索引算法的更多信息,请参阅itemIndexMethod属性。

场景的边界矩形通过调用setSceneRect()来设置。项目可以放置在场景的任何位置,场景的大小默认是无限的。场景矩形仅用于内部记录,维护场景的项目索引。如果未设置场景矩形,QGraphicsScene将使用所有项目的边界区域,由itemsBoundingRect()返回,作为场景矩形。然而,itemsBoundingRect()是一个相对耗时的函数,因为它通过收集场景上每个项目的位置信息来操作。因此,在处理大型场景时,您应始终设置场景矩形。

QGraphicsScene 的最大优势之一是其能够高效地确定项目的位置。即使场景中有数百万个项目,items() 函数也能在几毫秒内确定项目的位置。items() 有多个重载:一个用于查找特定位置的项目,一个用于查找多边形或矩形内部或与之相交的项目,等等。返回的项目列表按堆叠顺序排序,最上面的项目是列表中的第一个项目。为了方便起见,还有一个 itemAt() 函数,它返回给定位置的最上面的项目。

QGraphicsScene 维护场景的选择信息。要选择项目,请调用 setSelectionArea(),要清除当前选择,请调用 clearSelection()。调用 selectedItems() 以获取所有选定项目的列表。

事件处理与传播

QGraphicsScene 的另一个职责是从 QGraphicsView 传播事件。要向场景发送事件,您可以构造一个继承自 QEvent 的事件,然后使用例如 QCoreApplication::sendEvent() 发送它。event() 负责将事件分发给各个项目。一些常见事件由便捷的事件处理程序处理。例如,按键事件由 keyPressEvent() 处理,鼠标按下事件由 mousePressEvent() 处理。

关键事件被传递到焦点项。要设置焦点项,您可以调用setFocusItem(),传递一个接受焦点的项,或者项本身可以调用setFocus()。调用focusItem()以获取当前的焦点项。为了与小部件兼容,场景还维护自己的焦点信息。默认情况下,场景没有焦点,所有关键事件都会被丢弃。如果调用了setFocus(),或者场景上的某个项获得了焦点,场景会自动获得焦点。如果场景有焦点,hasFocus()将返回true,并且关键事件将被转发到焦点项(如果有)。如果场景失去焦点(即有人调用clearFocus()),而某个项仍有焦点,场景将保留其项焦点信息,一旦场景重新获得焦点,它将确保最后一个焦点项重新获得焦点。

对于鼠标悬停效果,QGraphicsScene 会分发 悬停事件。如果一个项目接受悬停事件(参见 acceptHoverEvents()),当鼠标进入其区域时,它将收到一个 GraphicsSceneHoverEnter 事件。随着鼠标在项目区域内继续移动,QGraphicsScene 会向其发送 GraphicsSceneHoverMove 事件。当鼠标离开项目区域时,项目将收到一个 GraphicsSceneHoverLeave 事件。

所有鼠标事件都会传递给当前的鼠标抓取器项目。如果一个项目接受鼠标事件(参见acceptedMouseButtons())并且接收到鼠标按下事件,它就会成为场景的鼠标抓取器。它会一直保持鼠标抓取器的状态,直到在没有其他鼠标按钮被按下时接收到鼠标释放事件。你可以调用mouseGrabberItem()来确定当前正在抓取鼠标的项目。

class ItemIndexMethod

此枚举描述了QGraphicsScene提供的用于管理场景上项目位置信息的索引算法。

常量

描述

QGraphicsScene.BspTreeIndex

应用了二叉空间分割树。通过使用二分搜索,所有QGraphicsScene的项目定位算法都接近对数复杂度。添加、移动和删除项目是对数的。这种方法最适合静态场景(即大多数项目不移动的场景)。

QGraphicsScene.NoIndex

未应用索引。项目位置的查找是线性复杂度的,因为场景中的所有项目都会被搜索。然而,添加、移动和删除项目是在常数时间内完成的。这种方法非常适合动态场景,其中许多项目会不断地被添加、移动或删除。

class SceneLayer

(继承自 enum.Flag) 此枚举描述了 QGraphicsScene 中的渲染层。当 QGraphicsScene 绘制场景内容时,它会按顺序分别渲染这些层。

每一层代表一个标志,可以在调用诸如invalidate()invalidateScene()等函数时进行OR操作。

常量

描述

QGraphicsScene.ItemLayer

项目层。QGraphicsScene通过调用虚函数drawItems()来渲染所有在此层的项目。项目层在背景层之后绘制,但在前景层之前。

QGraphicsScene.BackgroundLayer

背景层。QGraphicsScene通过调用虚函数drawBackground()在此层中渲染场景的背景。背景层在所有层中首先被绘制。

QGraphicsScene.ForegroundLayer

前景层。QGraphicsScene通过调用虚函数drawForeground()在此层中渲染场景的前景。前景层在所有层中最后绘制。

QGraphicsScene.AllLayers

所有图层;这个值代表了所有三个图层的组合。

注意

当使用from __feature__ import true_property时,属性可以直接使用,否则通过访问器函数使用。

property backgroundBrushᅟ: QBrush

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

此属性保存场景的背景画刷。

设置此属性以将场景的背景更改为不同的颜色、渐变或纹理。默认的背景笔刷是Qt::NoBrush。背景在项目之前(后面)绘制。

示例:

scene = QGraphicsScene()
view = QGraphicsView(scene)
view.show()
# a blue background
scene.setBackgroundBrush(Qt.blue)
# a gradient background
gradient = QRadialGradient(0, 0, 10)
gradient.setSpread(QGradient.RepeatSpread)
scene.setBackgroundBrush(gradient)

render() 调用 drawBackground() 来绘制场景背景。为了更详细地控制背景的绘制方式,你可以在 QGraphicsScene 的子类中重新实现 drawBackground()

Access functions:
property bspTreeDepthᅟ: int

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

此属性保存了QGraphicsScene的BSP索引树的深度。

当使用NoIndex时,此属性无效。

此值决定了QGraphicsScene的BSP树的深度。深度直接影响QGraphicsScene的性能和内存使用;后者随着树的深度呈指数增长。在最优的树深度下,QGraphicsScene可以立即确定项目的位置,即使对于包含数千或数百万项目的场景也是如此。这也大大提高了渲染性能。

默认情况下,值为0,此时Qt会根据场景中项目的大小、位置和数量猜测一个合理的默认深度。然而,如果这些参数频繁变化,您可能会遇到速度变慢的情况,因为QGraphicsScene会在内部重新调整深度。您可以通过设置此属性来固定树的深度,从而避免潜在的速度变慢。

树的深度和场景矩形的大小决定了场景分区的粒度。每个场景段的大小由以下算法决定:

segmentSize = sceneRect().size() / pow(2, depth - 1)

当每个段包含0到10个项目时,BSP树具有最佳大小。

另请参阅

itemIndexMethod

Access functions:
property focusOnTouchᅟ: bool

此属性决定项目在接收到触摸开始事件时是否获得焦点。

通常的行为是仅在点击项目时转移焦点。通常,触摸板上的点击被操作系统解释为等同于鼠标点击,从而生成一个合成的点击事件作为响应。然而,至少在macOS上,你可以配置这种行为。

默认情况下,QGraphicsScene 在触摸触控板或类似设备时也会转移焦点。如果操作系统配置为在轻触触控板时不生成合成鼠标点击,这可能会令人惊讶。如果操作系统在轻触触控板时确实生成合成鼠标点击,那么在开始触摸手势时转移焦点是不必要的。

关闭focusOnTouch后,QGraphicsScene在macOS上的行为符合预期。

默认值为true,确保默认行为与5.12之前的Qt版本相同。设置为false以防止触摸事件触发焦点变化。

Access functions:
property fontᅟ: QFont

此属性保存场景的默认字体。

此属性提供场景的字体。场景字体默认为,并从font解析其所有条目。

如果场景的字体发生变化,无论是直接通过setFont()还是间接地当应用程序字体发生变化时,QGraphicsScene首先会给自己发送一个FontChange事件,然后它会向场景中的所有顶级小部件项目发送FontChange事件。这些项目通过将它们的字体解析为场景的字体来响应,然后它们会通知它们的子项,子项再通知它们的子项,依此类推,直到所有小部件项目都更新了它们的字体。

更改场景字体(直接或通过setFont()间接更改)会自动安排重新绘制整个场景。

另请参阅

font setFont() palette style()

Access functions:
property foregroundBrushᅟ: QBrush

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

此属性保存场景的前景笔刷。

更改此属性以将场景的前景设置为不同的颜色、渐变或纹理。

前景在项目之后(在顶部)绘制。默认的前景笔刷是Qt::NoBrush(即不绘制前景)。

示例:

scene = QGraphicsScene()
view = QGraphicsView(scene)
view.show()
# a white semi-transparent foreground
scene.setForegroundBrush(QColor(255, 255, 255, 127))
# a grid foreground
scene.setForegroundBrush(QBrush(Qt.lightGray, Qt.CrossPattern))

render() 调用 drawForeground() 来绘制场景的前景。为了更详细地控制前景的绘制方式,您可以在 QGraphicsScene 子类中重新实现 drawForeground() 函数。

Access functions:
property itemIndexMethodᅟ: QGraphicsScene.ItemIndexMethod

此属性保存项目索引方法。

QGraphicsScene 对场景应用了一种索引算法,以加速像 items()itemAt() 这样的项目发现函数。索引对于静态场景(即项目不移动的场景)最为有效。对于动态场景或有许多动画项目的场景,索引的维护可能会超过快速查找的速度。

对于常见情况,默认的索引方法 BspTreeIndex 工作良好。如果你的场景使用了许多动画并且你遇到了速度慢的问题,你可以通过调用 setItemIndexMethod(NoIndex) 来禁用索引。

另请参阅

bspTreeDepth

Access functions:
property minimumRenderSizeᅟ: float

此属性保存项目必须具有的最小视图转换大小才能被绘制。

当场景被渲染时,任何宽度或高度转换到目标视图后小于minimumRenderSize()的项目将不会被渲染。如果一个项目没有被渲染并且它裁剪了其子项目,那么这些子项目也不会被渲染。设置此值可以加快在缩小视图中渲染许多对象的场景的速度。

默认值为0。如果未设置,或设置为0或负值,所有项目将始终被渲染。

例如,如果一个场景由多个视图渲染,其中一个视图作为概览始终显示所有项目,那么设置此属性可能特别有用。在有许多项目的场景中,这样的视图将使用较高的缩放因子,以便显示所有项目。由于缩放,较小的项目对最终渲染的场景贡献微不足道。为了避免绘制这些项目并减少渲染场景所需的时间,您可以调用 setMinimumRenderSize() 并传入一个非负值。

注意

由于太小而未绘制的项目仍然可以通过诸如items()itemAt()等方法返回,并参与碰撞检测和交互。建议您将minimumRenderSize()设置为小于或等于1的值,以避免未渲染的大型项目具有交互性。

Access functions:
property paletteᅟ: QPalette

此属性保存场景的默认调色板。

此属性提供场景的调色板。场景调色板默认为,并从palette解析其所有条目。

如果场景的调色板发生变化,无论是直接通过setPalette()还是间接地在应用程序调色板发生变化时,QGraphicsScene首先会给自己发送一个PaletteChange事件,然后它会向场景中的所有顶级小部件项目发送PaletteChange事件。这些项目通过将它们的调色板解析为场景来响应,然后它们会通知它们的子项,子项再通知它们的子项,依此类推,直到所有小部件项目都更新了它们的调色板。

更改场景调色板(直接或通过setPalette()间接更改)会自动安排重新绘制整个场景。

Access functions:
property sceneRectᅟ: QRectF

此属性保存场景矩形;场景的边界矩形。

场景矩形定义了场景的范围。它主要由QGraphicsView用于确定视图的默认可滚动区域,并由QGraphicsScene用于管理项目索引。

如果未设置,或者设置为空的QRectF,sceneRect()将返回自场景创建以来所有项目的最大边界矩形(即,当项目被添加到场景中或在场景中移动时,矩形会增大,但永远不会缩小)。

另请参阅

width() height() sceneRect

Access functions:
property stickyFocusᅟ: bool

此属性用于确定点击场景背景是否会清除焦点。

QGraphicsScene中,如果stickyFocus设置为true,当用户点击场景背景或不接受焦点的项目时,焦点将保持不变。否则,焦点将被清除。

默认情况下,此属性为 false

焦点变化响应鼠标按下。您可以在QGraphicsScene的子类中重新实现mousePressEvent(),以根据用户点击的位置切换此属性。

Access functions:
__init__([parent=None])
Parameters:

父对象QObject

构造一个QGraphicsScene对象。parent参数传递给QObject的构造函数。

__init__(sceneRect[, parent=None])
Parameters:

构造一个QGraphicsScene对象,使用sceneRect作为其场景矩形。parent参数传递给QObject的构造函数。

另请参阅

sceneRect

__init__(x, y, width, height[, parent=None])
Parameters:
  • x – 浮点数

  • y – 浮点数

  • width – 浮点数

  • height – 浮点数

  • parentQObject

构造一个QGraphicsScene对象,使用由(x, y)指定的矩形,以及给定的widthheight作为其场景矩形。parent参数传递给QObject的构造函数。

另请参阅

sceneRect

activePanel()
Return type:

QGraphicsItem

返回当前活动的面板,如果没有面板当前处于活动状态,则返回None

另请参阅

setActivePanel()

activeWindow()
Return type:

QGraphicsWidget

返回当前活动的窗口,如果没有窗口当前处于活动状态,则返回None

另请参阅

setActiveWindow()

addEllipse(rect[, pen=QPen()[, brush=QBrush()]])
Parameters:
Return type:

QGraphicsEllipseItem

创建并添加一个椭圆项到场景中,并返回该项的指针。椭圆的几何形状由rect定义,其画笔和画刷初始化为penbrush

请注意,项目的几何形状是以项目坐标提供的,其位置初始化为 (0, 0)。

如果项目是可见的(即 isVisible() 返回 true),QGraphicsScene 将在控制返回到事件循环时发出 changed()

addEllipse(x, y, w, h[, pen=QPen()[, brush=QBrush()]])
Parameters:
  • x – 浮点数

  • y – 浮点数

  • w – 浮点数

  • h – 浮点数

  • penQPen

  • brushQBrush

Return type:

QGraphicsEllipseItem

这个便捷函数等同于调用 addEllipse (QRectF(x, y, w, h), pen, brush)。

addItem(item)
Parameters:

项目QGraphicsItem

item及其所有子项添加或移动到此场景中。此场景将拥有item的所有权。

如果项目是可见的(即 isVisible() 返回 true),QGraphicsScene 将在控制返回到事件循环时发出 changed()

如果项目已经在不同的场景中,它将首先从其旧场景中移除,然后作为顶级项目添加到这个场景中。

QGraphicsScene 会在 item 被添加到场景时发送 ItemSceneChange 通知。如果 item 当前不属于任何场景,则只会发送一个通知。如果它已经属于某个场景(即它被移动到当前场景),QGraphicsScene 会在 item 从其之前的场景中移除时发送一个额外的通知。

如果项目是一个面板,场景是活动的,并且场景中没有活动的面板,那么该项目将被激活。

addLine(line[, pen=QPen()])
Parameters:
Return type:

QGraphicsLineItem

创建并向场景添加一个线条项,并返回该项的指针。线条的几何形状由line定义,其画笔初始化为pen

请注意,项目的几何形状是以项目坐标提供的,其位置初始化为 (0, 0)。

如果项目是可见的(即 isVisible() 返回 true),QGraphicsScene 将在控制返回到事件循环时发出 changed()

addLine(x1, y1, x2, y2[, pen=QPen()])
Parameters:
  • x1 – 浮点数

  • y1 – 浮点数

  • x2 – 浮点数

  • y2 – 浮点数

  • penQPen

Return type:

QGraphicsLineItem

这个便捷函数等同于调用 addLine (QLineF(x1, y1, x2, y2), pen)。

addPath(path[, pen=QPen()[, brush=QBrush()]])
Parameters:
Return type:

QGraphicsPathItem

创建并将路径项添加到场景中,并返回该项的指针。路径的几何形状由path定义,其画笔和画刷初始化为penbrush

请注意,项目的几何形状是以项目坐标提供的,其位置初始化为 (0, 0)。

如果项目是可见的(即 isVisible() 返回 true),QGraphicsScene 将在控制返回到事件循环时发出 changed()

addPixmap(pixmap)
Parameters:

pixmapQPixmap

Return type:

QGraphicsPixmapItem

创建并将一个像素图项目添加到场景中,并返回项目指针。像素图由pixmap定义。

请注意,项目的几何形状是以项目坐标提供的,其位置初始化为 (0, 0)。

如果项目是可见的(即 isVisible() 返回 true),QGraphicsScene 将在控制返回到事件循环时发出 changed()

addPolygon(polygon[, pen=QPen()[, brush=QBrush()]])
Parameters:
Return type:

QGraphicsPolygonItem

创建并将一个多边形项目添加到场景中,并返回项目指针。多边形由polygon定义,其画笔和画刷初始化为penbrush

请注意,项目的几何形状是以项目坐标提供的,其位置初始化为 (0, 0)。

如果项目是可见的(即 isVisible() 返回 true),QGraphicsScene 将在控制返回到事件循环时发出 changed()

addRect(rect[, pen=QPen()[, brush=QBrush()]])
Parameters:
Return type:

QGraphicsRectItem

创建并将一个矩形项添加到场景中,并返回该项的指针。矩形的几何形状由rect定义,其画笔和画刷初始化为penbrush

请注意,项目的几何形状是在项目坐标中提供的,其位置初始化为 (0, 0)。例如,如果添加了一个 QRect(50, 50, 100, 100),其左上角将相对于项目坐标系中的原点位于 (50, 50)。

如果项目是可见的(即 isVisible() 返回 true),QGraphicsScene 将在控制返回到事件循环时发出 changed()

addRect(x, y, w, h[, pen=QPen()[, brush=QBrush()]])
Parameters:
  • x – 浮点数

  • y – 浮点数

  • w – 浮点数

  • h – 浮点数

  • penQPen

  • brushQBrush

Return type:

QGraphicsRectItem

这个便捷函数等同于调用 addRect (QRectF(x, y, w, h), pen, brush)。

addSimpleText(text[, font=QFont()])
Parameters:
  • 文本 – str

  • 字体QFont

Return type:

QGraphicsSimpleTextItem

创建并添加一个QGraphicsSimpleTextItem到场景中,并返回项目指针。文本字符串初始化为text,其字体初始化为font

项目的位置初始化为 (0, 0)。

如果项目是可见的(即 isVisible() 返回 true),QGraphicsScene 将在控制返回到事件循环时发出 changed()

addText(text[, font=QFont()])
Parameters:
  • 文本 – str

  • 字体QFont

Return type:

QGraphicsTextItem

创建并向场景添加一个文本项,并返回该项的指针。文本字符串初始化为text,其字体初始化为font

项目的位置初始化为 (0, 0)。

如果项目是可见的(即 isVisible() 返回 true),QGraphicsScene 将在控制返回到事件循环时发出 changed()

addWidget(widget[, wFlags=Qt.WindowFlags()])
Parameters:
Return type:

QGraphicsProxyWidget

widget创建一个新的QGraphicsProxyWidget,将其添加到场景中,并返回指向代理的指针。wFlags设置嵌入代理小部件的默认窗口标志。

项目的位置初始化为 (0, 0)。

如果项目是可见的(即 isVisible() 返回 true),QGraphicsScene 将在控制返回到事件循环时发出 changed()

请注意,设置了Qt::WA_PaintOnScreen小部件属性的小部件以及包装外部应用程序或控制器的小部件不受支持。例如QOpenGLWidget和QAxWidget。

advance()

这个插槽通过调用场景中所有项目的advance()推进场景一步。这分为两个阶段进行:在第一阶段,所有项目都会收到场景即将改变的通知,在第二阶段,所有项目都会收到它们可以移动的通知。在第一阶段,advance()被调用时传递的参数值为0,而在第二阶段传递的参数值为1。

请注意,你也可以使用动画框架进行动画制作。

另请参阅

advance() QTimeLine

backgroundBrush()
Return type:

QBrush

另请参阅

setBackgroundBrush()

属性 backgroundBrushᅟ 的获取器。

bspTreeDepth()
Return type:

整数

另请参阅

setBspTreeDepth()

属性 bspTreeDepthᅟ 的获取器。

changed(region)
Parameters:

region – QRectF 的列表

当控制到达事件循环时,如果场景内容发生变化,此信号由QGraphicsScene发出。region参数包含一个场景矩形列表,指示已更改的区域。

另请参阅

updateScene()

clear()

从场景中移除并删除所有项目,但除此之外保持场景的状态不变。

另请参阅

addItem()

clearFocus()

清除场景中的焦点。如果调用此函数时任何项目具有焦点,它将失去焦点,并在场景重新获得焦点时再次获得焦点。

没有焦点的场景会忽略按键事件。

clearSelection()

清除当前选择。

collidingItems(item[, mode=Qt.IntersectsItemShape])
Parameters:
Return type:

QGraphicsItem的列表

返回与item碰撞的所有项目的列表。碰撞是通过调用collidesWithItem()来确定的;碰撞检测由mode决定。默认情况下,返回所有形状与item相交或包含在item形状内的项目。

项目按降序堆叠顺序返回(即列表中的第一个项目是最上面的项目,最后一个项目是最下面的项目)。

另请参阅

items() itemAt() collidesWithItem() 排序

contextMenuEvent(event)
Parameters:

事件QGraphicsSceneContextMenuEvent

此事件处理程序,用于事件contextMenuEvent,可以在子类中重新实现以接收上下文菜单事件。默认实现将事件转发给接受事件位置上下文菜单事件的最顶层可见项。如果在此位置没有项接受上下文菜单事件,则忽略该事件。

注意:请参阅items()了解此函数认为哪些项目是可见的定义。

另请参阅

contextMenuEvent()

createItemGroup(items)
Parameters:

items – QGraphicsItem 的列表

Return type:

QGraphicsItemGroup

items中的所有项目分组到一个新的QGraphicsItemGroup中,并返回指向该组的指针。该组以items的共同祖先作为其父级创建,并且位置为(0, 0)。所有项目都被重新设置为该组的子级,它们的位置和变换被映射到该组。如果items为空,此函数将返回一个空的顶级QGraphicsItemGroup

QGraphicsScene 拥有组项目的所有权;你不需要删除它。要拆解(取消分组)一个组,请调用 destroyItemGroup()

destroyItemGroup(group)
Parameters:

QGraphicsItemGroup

group中的所有项目重新父级到group的父级项目,然后从场景中移除group,最后删除它。项目的位置和变换从组映射到组的父级。

dragEnterEvent(event)
Parameters:

事件QGraphicsSceneDragDropEvent

此事件处理程序,用于事件 event,可以在子类中重新实现以接收场景的拖入事件。

默认实现接受事件并准备场景以接受拖动移动事件。

dragLeaveEvent(event)
Parameters:

事件QGraphicsSceneDragDropEvent

此事件处理程序,用于事件 event,可以在子类中重新实现以接收场景的拖拽离开事件。

dragMoveEvent(event)
Parameters:

事件QGraphicsSceneDragDropEvent

此事件处理程序,用于事件 event,可以在子类中重新实现以接收场景的拖动移动事件。

注意:请参阅items()了解此函数认为哪些项目是可见的定义。

drawBackground(painter, rect)
Parameters:

在绘制任何项目和前景之前,使用painter绘制场景的背景。重新实现此函数以为场景提供自定义背景。

所有的绘画都是在场景坐标中完成的。rect参数是暴露的矩形。

如果你只想为背景定义颜色、纹理或渐变,你可以调用setBackgroundBrush()来代替。

另请参阅

drawForeground() drawItems()

drawForeground(painter, rect)
Parameters:

使用painter绘制场景的前景,在背景和所有项目绘制完成后。重新实现此函数以提供自定义的场景前景。

所有的绘画都是在场景坐标中完成的。rect参数是暴露的矩形。

如果你只想为前景定义颜色、纹理或渐变,你可以调用 setForegroundBrush() 来代替。

另请参阅

drawBackground() drawItems()

dropEvent(event)
Parameters:

事件QGraphicsSceneDragDropEvent

此事件处理程序,用于事件 event,可以在子类中重新实现以接收场景的拖放事件。

focusInEvent(event)
Parameters:

事件QFocusEvent

此事件处理程序,用于事件 focusEvent,可以在子类中重新实现以接收焦点事件。

默认实现将焦点设置在场景上,然后设置在最后一个焦点项上。

另请参阅

focusOutEvent()

focusItem()
Return type:

QGraphicsItem

当场景处于活动状态时,此函数返回场景当前的焦点项,如果没有项当前具有焦点,则返回None。当场景处于非活动状态时,此函数返回当场景变为活动状态时将获得输入焦点的项。

当场景接收到键盘事件时,焦点项会接收键盘输入。

focusItemChanged(newFocus, oldFocus, reason)
Parameters:

每当场景中的焦点发生变化时(即,当一个项目获得或失去输入焦点,或者焦点从一个项目传递到另一个项目时),QGraphicsScene 会发出此信号。如果您需要跟踪其他项目何时获得输入焦点,可以连接到此信号。这对于实现虚拟键盘、输入方法和光标项目特别有用。

oldFocusItem 是一个指向之前拥有焦点的项目的指针,如果信号发出之前没有项目拥有焦点,则为0。newFocusItem 是一个指向获得输入焦点的项目的指针,如果焦点丢失,则为 Nonereason 是焦点变化的原因(例如,如果场景在输入字段拥有焦点时被停用,oldFocusItem 将指向输入字段项目,newFocusItem 将为 None,而 reason 将为 Qt::ActiveWindowFocusReason。

focusNextPrevChild(next)
Parameters:

next – 布尔值

Return type:

布尔

找到一个新部件以给予键盘焦点,适用于Tab和Shift+Tab,如果可以找到新部件则返回true,否则返回false。如果next为true,此函数向前搜索;如果next为false,则向后搜索。

你可以在QGraphicsScene的子类中重新实现这个函数,以提供对场景内标签焦点传递的细粒度控制。默认实现基于由setTabOrder()定义的标签焦点链。

focusOnTouch()
Return type:

布尔

另请参阅

setFocusOnTouch()

属性 focusOnTouchᅟ 的获取器。

focusOutEvent(event)
Parameters:

事件QFocusEvent

此事件处理程序,用于事件 focusEvent,可以在子类中重新实现以接收焦点移出事件。

默认实现会从任何焦点项移除焦点,然后从场景中移除焦点。

另请参阅

focusInEvent()

font()
Return type:

QFont

另请参阅

setFont()

属性 fontᅟ 的获取器。

foregroundBrush()
Return type:

QBrush

另请参阅

setForegroundBrush()

属性 foregroundBrushᅟ 的获取器。

hasFocus()
Return type:

布尔

如果场景具有焦点,则返回true;否则返回false。如果场景具有焦点,它将把来自QKeyEvent的键盘事件转发给任何具有焦点的项目。

另请参阅

setFocus() setFocusItem()

height()
Return type:

浮点数

这个便捷函数等同于调用 sceneRect().height()

另请参阅

width()

helpEvent(event)
Parameters:

事件QGraphicsSceneHelpEvent

此事件处理程序,用于事件 helpEvent,可以在子类中重新实现以接收帮助事件。这些事件的类型为 QEvent::ToolTip,当请求工具提示时会创建这些事件。

默认实现显示最顶层可见项目的工具提示,即具有最高z值的项目,位于鼠标光标位置。如果没有项目设置了工具提示,此函数不执行任何操作。

注意:请参阅items()了解此函数认为哪些项目是可见的定义。

inputMethodEvent(event)
Parameters:

事件QInputMethodEvent

此事件处理程序,用于事件 event,可以在子类中重新实现以接收场景的输入法事件。

默认实现将事件转发给focusItem()。如果当前没有项目获得焦点或当前焦点项目不接受输入方法,则此函数不执行任何操作。

另请参阅

inputMethodEvent()

inputMethodQuery(query)
Parameters:

查询InputMethodQuery

Return type:

对象

此方法由输入法使用,用于查询场景的一组属性,以便能够支持复杂的输入法操作,如对周围文本和重新转换的支持。

query 参数指定了要查询的属性。

另请参阅

inputMethodQuery()

invalidate([rect=QRectF()[, layers=QGraphicsScene.SceneLayer.AllLayers]])
Parameters:

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

使场景中rect内的layers失效并安排重绘。layers中的任何缓存内容都将无条件失效并重新绘制。

您可以使用此函数重载来通知QGraphicsScene场景背景或前景的变化。此函数通常用于具有基于瓦片的背景的场景,以便在QGraphicsView启用了CacheBackground时通知变化。

示例:

def rectForTile(self, int x, int y):

    # Return the rectangle for the tile at position (x, y).
    return QRectF(x * tileWidth, y * tileHeight, tileWidth, tileHeight)

def setTile(self, x, y, pixmap):

    # Sets or replaces the tile at position (x, y) with pixmap.
    if x >= 0 and x < numTilesH and y >= 0 and y < numTilesV:
        tiles[y][x] = pixmap
        invalidate(rectForTile(x, y), BackgroundLayer)


def drawBackground(self, painter, exposed):

    # Draws all tiles that intersect the exposed area.
    for y in range(0, numTilesV):
        for x in range(0, numTilesH):
            rect = rectForTile(x, y)
            if exposed.intersects(rect):
                painter.drawPixmap(rect.topLeft(), tiles[y][x])

请注意,QGraphicsView 目前仅支持背景缓存(参见 CacheBackground)。如果传递了除 BackgroundLayer 之外的任何层,此函数等同于调用 update()

另请参阅

resetCachedContent()

invalidate(x, y, w, h[, layers=QGraphicsScene.SceneLayer.AllLayers])
Parameters:
  • x – 浮点数

  • y – 浮点数

  • w – 浮点数

  • h – 浮点数

  • layersSceneLayer 的组合

这是一个重载函数。

这个便捷函数等同于调用 invalidate(QRectF(x, y, w, h), layers);

isActive()
Return type:

布尔

如果场景是活动的(例如,它被至少一个活动的QGraphicsView查看),则返回true;否则返回false

itemAt(pos, deviceTransform)
Parameters:
Return type:

QGraphicsItem

返回指定position处最顶部的可见项,如果该位置没有项,则返回None

deviceTransform 是应用于视图的变换,如果场景中包含忽略变换的项目,则需要提供此变换。

注意:请参阅items()了解此函数认为哪些项目是可见的定义。

另请参阅

items() collidingItems() 排序

itemAt(x, y, deviceTransform)
Parameters:
  • x – 浮点数

  • y – 浮点数

  • deviceTransformQTransform

Return type:

QGraphicsItem

这是一个重载函数。

返回在指定位置 (x, y) 的最顶层可见项,如果该位置没有项,则返回 None

deviceTransform 是应用于视图的变换,如果场景中包含忽略变换的项目,则需要提供此变换。

这个便捷函数等同于调用 itemAt(QPointF(x, y), deviceTransform)

注意:请参阅items()了解此函数认为哪些项目是可见的定义。

itemIndexMethod()
Return type:

ItemIndexMethod

另请参阅

setItemIndexMethod()

属性 itemIndexMethodᅟ 的获取器。

items([order=Qt.DescendingOrder])
Parameters:

顺序SortOrder

Return type:

QGraphicsItem的列表

返回场景中所有项目的有序列表。order决定了堆叠顺序。

另请参阅

addItem() removeItem() 排序

items(path[, mode=Qt.IntersectsItemShape[, order=Qt.DescendingOrder[, deviceTransform=QTransform()]]])
Parameters:
Return type:

QGraphicsItem的列表

这是一个重载函数。

返回所有可见的项目,这些项目根据mode,要么在指定的path内部,要么与之相交,列表使用order排序。在这种情况下,“可见”定义为:isVisible()返回true,effectiveOpacity()返回的值大于0.0(完全透明),并且父项目没有裁剪它。

mode 的默认值是 Qt::IntersectsItemShape;所有其精确形状与 path 相交或被其包含的项目都将被返回。

deviceTransform 是应用于视图的变换,如果场景中包含忽略变换的项目,则需要提供此变换。

另请参阅

itemAt() 排序

items(pos[, mode=Qt.IntersectsItemShape[, order=Qt.DescendingOrder[, deviceTransform=QTransform()]]])
Parameters:
Return type:

QGraphicsItem的列表

返回所有可见的项目,这些项目根据mode,在列表中使用order排序的指定pos处。在这种情况下,“可见”定义为:isVisible()返回true,effectiveOpacity()返回的值大于0.0(完全透明),并且父项目没有裁剪它。

mode 的默认值是 Qt::IntersectsItemShape;所有其精确形状与 pos 相交的项目都将被返回。

deviceTransform 是应用于视图的变换,如果场景中包含忽略变换的项目,则需要提供此变换。

另请参阅

itemAt() 排序

items(polygon[, mode=Qt.IntersectsItemShape[, order=Qt.DescendingOrder[, deviceTransform=QTransform()]]])
Parameters:
Return type:

QGraphicsItem的列表

这是一个重载函数。

返回所有可见的项目,这些项目根据mode,要么位于指定的polygon内部,要么与之相交,并以order排序的列表形式返回。在这种情况下,“可见”定义为:isVisible()返回true,effectiveOpacity()返回的值大于0.0(即完全不透明),并且父项目没有裁剪它。

mode 的默认值是 Qt::IntersectsItemShape;所有其精确形状与 polygon 相交或被包含的项都将被返回。

deviceTransform 是应用于视图的变换,如果场景中包含忽略变换的项目,则需要提供此变换。

另请参阅

itemAt() 排序

items(rect[, mode=Qt.IntersectsItemShape[, order=Qt.DescendingOrder[, deviceTransform=QTransform()]]])
Parameters:
Return type:

QGraphicsItem的列表

这是一个重载函数。

返回所有可见的项目,这些项目根据mode,要么在指定的rect内,要么与之相交,并以order排序的列表形式返回。在这种情况下,“可见”定义为:isVisible()返回true,effectiveOpacity()返回的值大于0.0(即完全不透明),并且父项目没有裁剪它。

mode 的默认值是 Qt::IntersectsItemShape;所有其精确形状与 rect 相交或被其包含的项目都将被返回。

deviceTransform 是应用于视图的变换,如果场景中包含忽略变换的项目,则需要提供此变换。

另请参阅

itemAt() 排序

items(x, y, w, h, mode, order[, deviceTransform=QTransform()])
Parameters:
Return type:

QGraphicsItem的列表

这是一个重载函数。

返回所有可见的项目,这些项目根据mode,要么在由xywh定义的矩形内,要么与该矩形相交,并使用order排序的列表。在这种情况下,“可见”定义了以下项目:isVisible()返回true,effectiveOpacity()返回大于0.0的值(完全透明),并且父项目没有裁剪它。

deviceTransform 是应用于视图的变换,如果场景中包含忽略变换的项目,则需要提供此变换。

itemsBoundingRect()
Return type:

QRectF

计算并返回场景上所有项目的边界矩形。此函数通过遍历所有项目来工作,因此对于大型场景可能会很慢。

另请参阅

sceneRect()

keyPressEvent(event)
Parameters:

事件QKeyEvent

此事件处理程序,用于事件keyEvent,可以在子类中重新实现以接收按键事件。默认实现将事件转发给当前焦点项。

keyReleaseEvent(event)
Parameters:

事件QKeyEvent

此事件处理程序,用于事件keyEvent,可以在子类中重新实现以接收按键释放事件。默认实现将事件转发给当前焦点项。

minimumRenderSize()
Return type:

浮点数

另请参阅

setMinimumRenderSize()

属性 minimumRenderSizeᅟ 的获取器。

mouseDoubleClickEvent(event)
Parameters:

事件QGraphicsSceneMouseEvent

此事件处理程序,用于事件mouseEvent,可以在子类中重新实现以接收场景的鼠标双击事件。

如果有人在场景上双击,场景将首先接收到一个鼠标按下事件,接着是一个释放事件(即点击),然后是一个双击事件,最后是一个释放事件。如果双击事件被传递到与接收第一次按下和释放的项目不同的项目,它将作为按下事件传递。然而,在这种情况下,三击事件不会作为双击事件传递。

默认实现类似于 mousePressEvent()

注意:请参阅items()了解此函数认为哪些项目是可见的定义。

mouseGrabberItem()
Return type:

QGraphicsItem

返回当前的鼠标抓取项,如果没有项正在抓取鼠标,则返回None。鼠标抓取项是接收发送到场景的所有鼠标事件的项。

当一个项目接收并接受鼠标按下事件时,它将成为鼠标抓取器,并且它将保持鼠标抓取器的状态,直到发生以下任一事件:

  • 如果项目在没有其他按钮按下时接收到鼠标释放事件,它将失去鼠标抓取。

  • 如果项目变为不可见(即有人调用item->setVisible(false)),或者如果它变为禁用(即有人调用item->setEnabled(false)),它将失去鼠标抓取。

  • 如果项目从场景中移除,它将失去鼠标抓取。

如果项目失去鼠标抓取,场景将忽略所有鼠标事件,直到新项目抓取鼠标(即,直到新项目接收到鼠标按下事件)。

mouseMoveEvent(event)
Parameters:

事件QGraphicsSceneMouseEvent

此事件处理程序,用于事件 mouseEvent,可以在子类中重新实现以接收场景的鼠标移动事件。

默认实现取决于鼠标抓取器的状态。如果有鼠标抓取器项目,事件将发送到鼠标抓取器。如果在当前位置有任何接受悬停事件的项目,事件将被转换为悬停事件并被接受;否则它将被忽略。

mousePressEvent(event)
Parameters:

事件QGraphicsSceneMouseEvent

此事件处理程序,用于事件 mouseEvent,可以在子类中重新实现以接收场景的鼠标按下事件。

默认实现取决于场景的状态。如果有鼠标抓取器项目,则事件将发送到鼠标抓取器。否则,它将被转发到场景位置接受鼠标事件的最顶层可见项目,并且该项目立即成为鼠标抓取器项目。

如果场景上给定位置没有项目,则选择区域被重置,任何焦点项目失去其输入焦点,然后事件被忽略。

注意:请参阅items()了解此函数认为哪些项目是可见的定义。

mouseReleaseEvent(event)
Parameters:

事件QGraphicsSceneMouseEvent

此事件处理程序,用于事件 mouseEvent,可以在子类中重新实现以接收场景的鼠标释放事件。

默认实现取决于鼠标抓取器的状态。如果没有鼠标抓取器,事件将被忽略。否则,如果有鼠标抓取器项目,事件将被发送到鼠标抓取器。如果此鼠标释放代表鼠标上最后一个按下的按钮,鼠标抓取器项目将失去鼠标抓取。

palette()
Return type:

QPalette

另请参阅

setPalette()

属性 paletteᅟ 的获取器。

removeItem(item)
Parameters:

项目QGraphicsItem

从场景中移除项目 item 及其所有子项。item 的所有权将转移给调用者(即,QGraphicsScene 在被销毁时将不再删除 item)。

另请参阅

addItem()

render(painter[, target=QRectF()[, source=QRectF()[, aspectRatioMode=Qt.KeepAspectRatio]]])
Parameters:

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

使用 painter 将场景中的 source 矩形渲染到 target 中。此函数对于将场景内容捕获到绘图设备(例如 QImage,用于截图)或使用 QPrinter 进行打印非常有用。例如:

scene = QGraphicsScene()
scene.addItem(...
...
printer = QPrinter(QPrinter.HighResolution)
printer.setPaperSize(QPrinter.A4)
painter = QPainter(printer)
scene.render(painter)

如果 source 是一个空矩形,此函数将使用 sceneRect() 来确定要渲染的内容。如果 target 是一个空矩形,将使用 painter 的绘制设备的尺寸。

源矩形的内容将根据aspectRatioMode进行变换以适应目标矩形。默认情况下,保持宽高比,并且source被缩放以适应target

另请参阅

render()

sceneRect()
Return type:

QRectF

另请参阅

setSceneRect()

属性 sceneRectᅟ 的获取器。

sceneRectChanged(rect)
Parameters:

矩形QRectF

每当场景矩形发生变化时,QGraphicsScene 会发出此信号。rect 参数是新的场景矩形。

另请参阅

updateSceneRect()

selectedItems()
Return type:

QGraphicsItem的列表

返回当前所有已选项目的列表。项目以无特定顺序返回。

另请参阅

setSelectionArea()

selectionArea()
Return type:

QPainterPath

返回之前使用setSelectionArea()设置的选区区域,如果未设置选区区域,则返回一个空的QPainterPath。

另请参阅

setSelectionArea()

selectionChanged()

每当选择发生变化时,QGraphicsScene 会发出此信号。您可以调用 selectedItems() 来获取新的选中项目列表。

每当一个项目被选中或取消选中,设置、清除或以其他方式更改选择区域,如果预选项目被添加到场景中,或者如果选中的项目从场景中移除时,选择都会发生变化。

QGraphicsScene 仅在组选择操作时发出此信号一次。例如,如果您设置了一个选择区域,选择或取消选择一个QGraphicsItemGroup,或者如果您从场景中添加或移除包含多个选定项的父项,selectionChanged() 仅在操作完成后发出一次(而不是为每个项发出一次)。

sendEvent(item, event)
Parameters:
Return type:

布尔

将事件 event 发送到项目 item,可能会通过事件过滤器。

只有在项目启用时才会发送事件。

如果事件被过滤或项目被禁用,则返回false。否则返回事件处理程序返回的值。

setActivePanel(item)
Parameters:

项目QGraphicsItem

激活item,它必须是此场景中的一个项目。你也可以为item传递0,在这种情况下QGraphicsScene将停用任何当前活动的面板。

如果场景当前处于非活动状态,item 将保持非活动状态,直到场景变为活动状态(或者,如果 itemNone,则不会激活任何项目)。

setActiveWindow(widget)
Parameters:

widgetQGraphicsWidget

激活widget,它必须是此场景中的一个小部件。你也可以为widget传递0,在这种情况下,QGraphicsScene将停用任何当前活动的窗口。

setBackgroundBrush(brush)
Parameters:

画笔QBrush

另请参阅

backgroundBrush()

属性 backgroundBrushᅟ 的设置器。

setBspTreeDepth(depth)
Parameters:

深度 – int

另请参阅

bspTreeDepth()

属性 bspTreeDepthᅟ 的设置器。

setFocus([focusReason=Qt.OtherFocusReason])
Parameters:

focusReasonFocusReason

通过向场景发送一个QFocusEvent来设置场景的焦点,传递focusReason作为原因。如果场景在之前失去焦点后重新获得焦点,而某个项目之前拥有焦点,则最后一个焦点项目将以focusReason作为原因接收焦点。

如果场景已经获得焦点,此函数不执行任何操作。

setFocusItem(item[, focusReason=Qt.OtherFocusReason])
Parameters:

将场景的焦点项设置为item,焦点原因为focusReason,在此之前会移除任何可能已经拥有焦点的先前项的焦点。

如果 itemNone,或者它不接受焦点(即它没有启用 ItemIsFocusable 标志),或者不可见或未启用,此函数仅从任何先前的焦点项中移除焦点。

如果项目不是None,并且场景当前没有焦点(即hasFocus()返回false),此函数将自动调用setFocus()

setFocusOnTouch(enabled)
Parameters:

enabled – 布尔值

另请参阅

focusOnTouch()

属性 focusOnTouchᅟ 的设置器。

setFont(font)
Parameters:

字体QFont

另请参阅

font()

属性 fontᅟ 的设置器。

setForegroundBrush(brush)
Parameters:

画笔QBrush

另请参阅

foregroundBrush()

属性 foregroundBrushᅟ 的设置器。

setItemIndexMethod(method)
Parameters:

方法ItemIndexMethod

另请参阅

itemIndexMethod()

属性 itemIndexMethodᅟ 的设置器。

setMinimumRenderSize(minSize)
Parameters:

minSize – 浮点数

另请参阅

minimumRenderSize()

属性 minimumRenderSizeᅟ 的设置器。

setPalette(palette)
Parameters:

调色板QPalette

另请参阅

palette()

属性 paletteᅟ 的设置器。

setSceneRect(rect)
Parameters:

矩形QRectF

另请参阅

sceneRect()

属性 sceneRectᅟ 的设置器。

setSceneRect(x, y, w, h)
Parameters:
  • x – 浮点数

  • y – 浮点数

  • w – 浮点数

  • h – 浮点数

setSelectionArea(path, deviceTransform)
Parameters:

将选择区域设置为path。该区域内的所有项目将立即被选中,而区域外的所有项目将被取消选中。您可以通过调用selectedItems()来获取所有选中项目的列表。

deviceTransform 是应用于视图的变换,如果场景中包含忽略变换的项目,则需要提供此变换。

要选择一个项目,它必须被标记为可选择的ItemIsSelectable)。

setSelectionArea(path[, selectionOperation=Qt.ReplaceSelection[, mode=Qt.IntersectsItemShape[, deviceTransform=QTransform()]]])
Parameters:

这是一个重载函数。

使用mode来确定项目是否包含在选择区域中,将选择区域设置为path

deviceTransform 是应用于视图的变换,如果场景中包含忽略变换的项目,则需要提供此变换。

selectionOperation 决定了如何处理当前选中的项目。

setStickyFocus(enabled)
Parameters:

enabled – 布尔值

另请参阅

stickyFocus()

属性 stickyFocusᅟ 的设置器。

setStyle(style)
Parameters:

样式QStyle

设置或替换场景的样式为style,并将样式重新分配给此场景。任何先前分配的样式将被删除。场景的样式默认为style(),并作为场景中所有QGraphicsWidget项目的默认样式。

更改样式,无论是直接通过调用此函数,还是间接通过调用setStyle(),都会自动更新场景中所有未明确分配样式的小部件的样式。

如果 styleNoneQGraphicsScene 将恢复到 style()

另请参阅

style()

stickyFocus()
Return type:

布尔

另请参阅

setStickyFocus()

属性 stickyFocusᅟ 的获取器。

style()
Return type:

QStyle

返回场景的样式,如果场景没有明确分配样式,则与style()相同。

另请参阅

setStyle()

update([rect=QRectF()])
Parameters:

矩形QRectF

安排重新绘制场景上的区域 rect

另请参阅

sceneRect() changed()

update(x, y, w, h)
Parameters:
  • x – 浮点数

  • y – 浮点数

  • w – 浮点数

  • h – 浮点数

这是一个重载函数。

此函数等同于调用 update(QRectF(x, y, w, h));

views()
Return type:

QGraphicsView的列表

返回显示此场景的所有视图的列表。

另请参阅

scene()

wheelEvent(event)
Parameters:

事件QGraphicsSceneWheelEvent

此事件处理程序,用于事件 wheelEvent,可以在子类中重新实现以接收场景的鼠标滚轮事件。

默认情况下,事件会传递给光标下最顶层的可见项。如果被忽略,事件会传播到下方的项,直到事件被接受或到达场景。如果没有项接受事件,它将被忽略。

注意:请参阅items()了解此函数认为哪些项目是可见的定义。

另请参阅

wheelEvent()

width()
Return type:

浮点数

这个便捷函数等同于调用 sceneRect() .width()。

另请参阅

height()