PySide6.QtWidgets.QGraphicsScene¶
- class QGraphicsScene¶
QGraphicsScene
类提供了一个用于管理大量二维图形项目的表面。更多…概要¶
属性¶
backgroundBrushᅟ
- 场景的背景画刷bspTreeDepthᅟ
- QGraphicsScene的BSP索引树的深度focusOnTouchᅟ
- 当接收到触摸开始事件时,项目是否获得焦点fontᅟ
- 场景的默认字体foregroundBrushᅟ
- 场景的前景笔刷itemIndexMethodᅟ
- 项目索引方法minimumRenderSizeᅟ
- 项目必须具有的最小视图转换大小才能被绘制paletteᅟ
- 场景的默认调色板sceneRectᅟ
- 场景矩形;场景的边界矩形stickyFocusᅟ
- 点击场景背景是否会清除焦点
方法¶
def
__init__()
def
activePanel()
def
activeWindow()
def
addEllipse()
def
addItem()
def
addLine()
def
addPath()
def
addPixmap()
def
addPolygon()
def
addRect()
def
addSimpleText()
def
addText()
def
addWidget()
def
bspTreeDepth()
def
clearFocus()
def
collidingItems()
def
focusItem()
def
focusOnTouch()
def
font()
def
hasFocus()
def
height()
def
invalidate()
def
isActive()
def
itemAt()
def
items()
def
palette()
def
removeItem()
def
render()
def
sceneRect()
def
selectedItems()
def
selectionArea()
def
sendEvent()
def
setActivePanel()
def
setFocus()
def
setFocusItem()
def
setFont()
def
setPalette()
def
setSceneRect()
def
setStickyFocus()
def
setStyle()
def
stickyFocus()
def
style()
def
update()
def
views()
def
width()
虚拟方法¶
def
dragEnterEvent()
def
dragLeaveEvent()
def
dragMoveEvent()
def
drawBackground()
def
drawForeground()
def
dropEvent()
def
focusInEvent()
def
focusOutEvent()
def
helpEvent()
def
keyPressEvent()
def
mouseMoveEvent()
def
wheelEvent()
插槽¶
def
advance()
def
clear()
def
clearSelection()
def
invalidate()
def
update()
信号¶
def
changed()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
该类作为QGraphicsItems的容器。它与
QGraphicsView
一起用于在二维表面上可视化图形项,如线条、矩形、文本,甚至是自定义项。QGraphicsScene
是Graphics 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
时,属性可以直接使用,否则通过访问器函数使用。警告
本节包含从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树具有最佳大小。
另请参阅
- Access functions:
- property focusOnTouchᅟ: bool¶
此属性决定项目在接收到触摸开始事件时是否获得焦点。
通常的行为是仅在点击项目时转移焦点。通常,触摸板上的点击被操作系统解释为等同于鼠标点击,从而生成一个合成的点击事件作为响应。然而,至少在macOS上,你可以配置这种行为。
默认情况下,
QGraphicsScene
在触摸触控板或类似设备时也会转移焦点。如果操作系统配置为在轻触触控板时不生成合成鼠标点击,这可能会令人惊讶。如果操作系统在轻触触控板时确实生成合成鼠标点击,那么在开始触摸手势时转移焦点是不必要的。关闭focusOnTouch后,
QGraphicsScene
在macOS上的行为符合预期。默认值为
true
,确保默认行为与5.12之前的Qt版本相同。设置为false
以防止触摸事件触发焦点变化。- Access functions:
此属性保存场景的默认字体。
此属性提供场景的字体。场景字体默认为,并从
font
解析其所有条目。如果场景的字体发生变化,无论是直接通过setFont()还是间接地当应用程序字体发生变化时,
QGraphicsScene
首先会给自己发送一个FontChange事件,然后它会向场景中的所有顶级小部件项目发送FontChange事件。这些项目通过将它们的字体解析为场景的字体来响应,然后它们会通知它们的子项,子项再通知它们的子项,依此类推,直到所有小部件项目都更新了它们的字体。更改场景字体(直接或通过
setFont()
间接更改)会自动安排重新绘制整个场景。警告
本节包含从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)
来禁用索引。另请参阅
- Access functions:
- property minimumRenderSizeᅟ: float¶
此属性保存项目必须具有的最小视图转换大小才能被绘制。
当场景被渲染时,任何宽度或高度转换到目标视图后小于minimumRenderSize()的项目将不会被渲染。如果一个项目没有被渲染并且它裁剪了其子项目,那么这些子项目也不会被渲染。设置此值可以加快在缩小视图中渲染许多对象的场景的速度。
默认值为0。如果未设置,或设置为0或负值,所有项目将始终被渲染。
例如,如果一个场景由多个视图渲染,其中一个视图作为概览始终显示所有项目,那么设置此属性可能特别有用。在有许多项目的场景中,这样的视图将使用较高的缩放因子,以便显示所有项目。由于缩放,较小的项目对最终渲染的场景贡献微不足道。为了避免绘制这些项目并减少渲染场景所需的时间,您可以调用 setMinimumRenderSize() 并传入一个非负值。
注意
由于太小而未绘制的项目仍然可以通过诸如
items()
和itemAt()
等方法返回,并参与碰撞检测和交互。建议您将minimumRenderSize()设置为小于或等于1的值,以避免未渲染的大型项目具有交互性。- Access functions:
此属性保存场景的默认调色板。
此属性提供场景的调色板。场景调色板默认为,并从
palette
解析其所有条目。如果场景的调色板发生变化,无论是直接通过setPalette()还是间接地在应用程序调色板发生变化时,
QGraphicsScene
首先会给自己发送一个PaletteChange事件,然后它会向场景中的所有顶级小部件项目发送PaletteChange事件。这些项目通过将它们的调色板解析为场景来响应,然后它们会通知它们的子项,子项再通知它们的子项,依此类推,直到所有小部件项目都更新了它们的调色板。更改场景调色板(直接或通过
setPalette()
间接更改)会自动安排重新绘制整个场景。另请参阅
- Access functions:
此属性保存场景矩形;场景的边界矩形。
场景矩形定义了场景的范围。它主要由
QGraphicsView
用于确定视图的默认可滚动区域,并由QGraphicsScene
用于管理项目索引。如果未设置,或者设置为空的QRectF,sceneRect()将返回自场景创建以来所有项目的最大边界矩形(即,当项目被添加到场景中或在场景中移动时,矩形会增大,但永远不会缩小)。
- Access functions:
- property stickyFocusᅟ: bool¶
此属性用于确定点击场景背景是否会清除焦点。
在
QGraphicsScene
中,如果stickyFocus设置为true,当用户点击场景背景或不接受焦点的项目时,焦点将保持不变。否则,焦点将被清除。默认情况下,此属性为
false
。焦点变化响应鼠标按下。您可以在
QGraphicsScene
的子类中重新实现mousePressEvent()
,以根据用户点击的位置切换此属性。- Access functions:
构造一个
QGraphicsScene
对象。parent
参数传递给QObject的构造函数。构造一个
QGraphicsScene
对象,使用sceneRect
作为其场景矩形。parent
参数传递给QObject的构造函数。另请参阅
- __init__(x, y, width, height[, parent=None])
- Parameters:
x – 浮点数
y – 浮点数
width – 浮点数
height – 浮点数
parent –
QObject
构造一个
QGraphicsScene
对象,使用由(x
,y
)指定的矩形,以及给定的width
和height
作为其场景矩形。parent
参数传递给QObject的构造函数。另请参阅
- activePanel()¶
- Return type:
返回当前活动的面板,如果没有面板当前处于活动状态,则返回
None
。另请参阅
- activeWindow()¶
- Return type:
返回当前活动的窗口,如果没有窗口当前处于活动状态,则返回
None
。另请参阅
- addEllipse(rect[, pen=QPen()[, brush=QBrush()]])¶
- Parameters:
- Return type:
创建并添加一个椭圆项到场景中,并返回该项的指针。椭圆的几何形状由
rect
定义,其画笔和画刷初始化为pen
和brush
。请注意,项目的几何形状是以项目坐标提供的,其位置初始化为 (0, 0)。
如果项目是可见的(即
isVisible()
返回true
),QGraphicsScene
将在控制返回到事件循环时发出changed()
。- addEllipse(x, y, w, h[, pen=QPen()[, brush=QBrush()]])
- Parameters:
- Return type:
这个便捷函数等同于调用
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:
创建并向场景添加一个线条项,并返回该项的指针。线条的几何形状由
line
定义,其画笔初始化为pen
。请注意,项目的几何形状是以项目坐标提供的,其位置初始化为 (0, 0)。
如果项目是可见的(即
isVisible()
返回true
),QGraphicsScene
将在控制返回到事件循环时发出changed()
。- addLine(x1, y1, x2, y2[, pen=QPen()])
- Parameters:
x1 – 浮点数
y1 – 浮点数
x2 – 浮点数
y2 – 浮点数
pen –
QPen
- Return type:
这个便捷函数等同于调用
addLine
(QLineF(x1
,y1
,x2
,y2
),pen
)。- addPath(path[, pen=QPen()[, brush=QBrush()]])¶
- Parameters:
路径 –
QPainterPath
pen –
QPen
brush –
QBrush
- Return type:
创建并将路径项添加到场景中,并返回该项的指针。路径的几何形状由
path
定义,其画笔和画刷初始化为pen
和brush
。请注意,项目的几何形状是以项目坐标提供的,其位置初始化为 (0, 0)。
如果项目是可见的(即
isVisible()
返回true
),QGraphicsScene
将在控制返回到事件循环时发出changed()
。创建并将一个像素图项目添加到场景中,并返回项目指针。像素图由
pixmap
定义。请注意,项目的几何形状是以项目坐标提供的,其位置初始化为 (0, 0)。
如果项目是可见的(即
isVisible()
返回true
),QGraphicsScene
将在控制返回到事件循环时发出changed()
。- addPolygon(polygon[, pen=QPen()[, brush=QBrush()]])¶
- Parameters:
- Return type:
创建并将一个多边形项目添加到场景中,并返回项目指针。多边形由
polygon
定义,其画笔和画刷初始化为pen
和brush
。请注意,项目的几何形状是以项目坐标提供的,其位置初始化为 (0, 0)。
如果项目是可见的(即
isVisible()
返回true
),QGraphicsScene
将在控制返回到事件循环时发出changed()
。- addRect(rect[, pen=QPen()[, brush=QBrush()]])¶
- Parameters:
- Return type:
创建并将一个矩形项添加到场景中,并返回该项的指针。矩形的几何形状由
rect
定义,其画笔和画刷初始化为pen
和brush
。请注意,项目的几何形状是在项目坐标中提供的,其位置初始化为 (0, 0)。例如,如果添加了一个 QRect(50, 50, 100, 100),其左上角将相对于项目坐标系中的原点位于 (50, 50)。
如果项目是可见的(即
isVisible()
返回true
),QGraphicsScene
将在控制返回到事件循环时发出changed()
。- addRect(x, y, w, h[, pen=QPen()[, brush=QBrush()]])
- Parameters:
- Return type:
这个便捷函数等同于调用
addRect
(QRectF(x
,y
,w
,h
),pen
,brush
)。创建并添加一个
QGraphicsSimpleTextItem
到场景中,并返回项目指针。文本字符串初始化为text
,其字体初始化为font
。项目的位置初始化为 (0, 0)。
如果项目是可见的(即
isVisible()
返回true
),QGraphicsScene
将在控制返回到事件循环时发出changed()
。创建并向场景添加一个文本项,并返回该项的指针。文本字符串初始化为
text
,其字体初始化为font
。项目的位置初始化为 (0, 0)。
如果项目是可见的(即
isVisible()
返回true
),QGraphicsScene
将在控制返回到事件循环时发出changed()
。- addWidget(widget[, wFlags=Qt.WindowFlags()])¶
- Parameters:
widget –
QWidget
wFlags –
WindowType
的组合
- Return type:
为
widget
创建一个新的QGraphicsProxyWidget
,将其添加到场景中,并返回指向代理的指针。wFlags
设置嵌入代理小部件的默认窗口标志。项目的位置初始化为 (0, 0)。
如果项目是可见的(即
isVisible()
返回true
),QGraphicsScene
将在控制返回到事件循环时发出changed()
。请注意,设置了Qt::WA_PaintOnScreen小部件属性的小部件以及包装外部应用程序或控制器的小部件不受支持。例如QOpenGLWidget和QAxWidget。
- advance()¶
这个插槽通过调用场景中所有项目的
advance()
来推进场景一步。这分为两个阶段进行:在第一阶段,所有项目都会收到场景即将改变的通知,在第二阶段,所有项目都会收到它们可以移动的通知。在第一阶段,advance()
被调用时传递的参数值为0,而在第二阶段传递的参数值为1。请注意,你也可以使用动画框架进行动画制作。
- backgroundBrush()¶
- Return type:
另请参阅
属性
backgroundBrushᅟ
的获取器。- bspTreeDepth()¶
- Return type:
整数
另请参阅
属性
bspTreeDepthᅟ
的获取器。- changed(region)¶
- Parameters:
region – QRectF 的列表
当控制到达事件循环时,如果场景内容发生变化,此信号由
QGraphicsScene
发出。region
参数包含一个场景矩形列表,指示已更改的区域。另请参阅
- clear()¶
从场景中移除并删除所有项目,但除此之外保持场景的状态不变。
另请参阅
- clearFocus()¶
清除场景中的焦点。如果调用此函数时任何项目具有焦点,它将失去焦点,并在场景重新获得焦点时再次获得焦点。
没有焦点的场景会忽略按键事件。
- clearSelection()¶
清除当前选择。
- collidingItems(item[, mode=Qt.IntersectsItemShape])¶
- Parameters:
项目 –
QGraphicsItem
mode –
ItemSelectionMode
- Return type:
返回与
item
碰撞的所有项目的列表。碰撞是通过调用collidesWithItem()
来确定的;碰撞检测由mode
决定。默认情况下,返回所有形状与item
相交或包含在item
形状内的项目。项目按降序堆叠顺序返回(即列表中的第一个项目是最上面的项目,最后一个项目是最下面的项目)。
另请参阅
- contextMenuEvent(event)¶
- Parameters:
此事件处理程序,用于事件
contextMenuEvent
,可以在子类中重新实现以接收上下文菜单事件。默认实现将事件转发给接受事件位置上下文菜单事件的最顶层可见项。如果在此位置没有项接受上下文菜单事件,则忽略该事件。注意:请参阅
items()
了解此函数认为哪些项目是可见的定义。另请参阅
- createItemGroup(items)¶
- Parameters:
items – QGraphicsItem 的列表
- Return type:
将
items
中的所有项目分组到一个新的QGraphicsItemGroup
中,并返回指向该组的指针。该组以items
的共同祖先作为其父级创建,并且位置为(0, 0)。所有项目都被重新设置为该组的子级,它们的位置和变换被映射到该组。如果items
为空,此函数将返回一个空的顶级QGraphicsItemGroup
。QGraphicsScene
拥有组项目的所有权;你不需要删除它。要拆解(取消分组)一个组,请调用destroyItemGroup()
。- destroyItemGroup(group)¶
- Parameters:
将
group
中的所有项目重新父级到group
的父级项目,然后从场景中移除group
,最后删除它。项目的位置和变换从组映射到组的父级。- dragEnterEvent(event)¶
- Parameters:
此事件处理程序,用于事件
event
,可以在子类中重新实现以接收场景的拖入事件。默认实现接受事件并准备场景以接受拖动移动事件。
- dragLeaveEvent(event)¶
- Parameters:
此事件处理程序,用于事件
event
,可以在子类中重新实现以接收场景的拖拽离开事件。- dragMoveEvent(event)¶
- Parameters:
此事件处理程序,用于事件
event
,可以在子类中重新实现以接收场景的拖动移动事件。注意:请参阅
items()
了解此函数认为哪些项目是可见的定义。在绘制任何项目和前景之前,使用
painter
绘制场景的背景。重新实现此函数以为场景提供自定义背景。所有的绘画都是在场景坐标中完成的。
rect
参数是暴露的矩形。如果你只想为背景定义颜色、纹理或渐变,你可以调用
setBackgroundBrush()
来代替。另请参阅
drawForeground()
drawItems()
使用
painter
绘制场景的前景,在背景和所有项目绘制完成后。重新实现此函数以提供自定义的场景前景。所有的绘画都是在场景坐标中完成的。
rect
参数是暴露的矩形。如果你只想为前景定义颜色、纹理或渐变,你可以调用
setForegroundBrush()
来代替。另请参阅
drawBackground()
drawItems()
- dropEvent(event)¶
- Parameters:
此事件处理程序,用于事件
event
,可以在子类中重新实现以接收场景的拖放事件。- focusInEvent(event)¶
- Parameters:
事件 –
QFocusEvent
此事件处理程序,用于事件
focusEvent
,可以在子类中重新实现以接收焦点事件。默认实现将焦点设置在场景上,然后设置在最后一个焦点项上。
另请参阅
- focusItem()¶
- Return type:
当场景处于活动状态时,此函数返回场景当前的焦点项,如果没有项当前具有焦点,则返回
None
。当场景处于非活动状态时,此函数返回当场景变为活动状态时将获得输入焦点的项。当场景接收到键盘事件时,焦点项会接收键盘输入。
- focusItemChanged(newFocus, oldFocus, reason)¶
- Parameters:
newFocus –
QGraphicsItem
oldFocus –
QGraphicsItem
原因 –
FocusReason
每当场景中的焦点发生变化时(即,当一个项目获得或失去输入焦点,或者焦点从一个项目传递到另一个项目时),
QGraphicsScene
会发出此信号。如果您需要跟踪其他项目何时获得输入焦点,可以连接到此信号。这对于实现虚拟键盘、输入方法和光标项目特别有用。oldFocusItem
是一个指向之前拥有焦点的项目的指针,如果信号发出之前没有项目拥有焦点,则为0。newFocusItem
是一个指向获得输入焦点的项目的指针,如果焦点丢失,则为None
。reason
是焦点变化的原因(例如,如果场景在输入字段拥有焦点时被停用,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:
布尔
另请参阅
属性
focusOnTouchᅟ
的获取器。- focusOutEvent(event)¶
- Parameters:
事件 –
QFocusEvent
此事件处理程序,用于事件
focusEvent
,可以在子类中重新实现以接收焦点移出事件。默认实现会从任何焦点项移除焦点,然后从场景中移除焦点。
另请参阅
属性
fontᅟ
的获取器。- foregroundBrush()¶
- Return type:
另请参阅
属性
foregroundBrushᅟ
的获取器。- hasFocus()¶
- Return type:
布尔
如果场景具有焦点,则返回
true
;否则返回false
。如果场景具有焦点,它将把来自QKeyEvent的键盘事件转发给任何具有焦点的项目。另请参阅
- height()¶
- Return type:
浮点数
这个便捷函数等同于调用
sceneRect().height()
。另请参阅
- helpEvent(event)¶
- Parameters:
此事件处理程序,用于事件
helpEvent
,可以在子类中重新实现以接收帮助事件。这些事件的类型为 QEvent::ToolTip,当请求工具提示时会创建这些事件。默认实现显示最顶层可见项目的工具提示,即具有最高z值的项目,位于鼠标光标位置。如果没有项目设置了工具提示,此函数不执行任何操作。
注意:请参阅
items()
了解此函数认为哪些项目是可见的定义。- inputMethodEvent(event)¶
- Parameters:
事件 –
QInputMethodEvent
此事件处理程序,用于事件
event
,可以在子类中重新实现以接收场景的输入法事件。默认实现将事件转发给
focusItem()
。如果当前没有项目获得焦点或当前焦点项目不接受输入方法,则此函数不执行任何操作。另请参阅
- inputMethodQuery(query)¶
- Parameters:
查询 –
InputMethodQuery
- Return type:
对象
此方法由输入法使用,用于查询场景的一组属性,以便能够支持复杂的输入法操作,如对周围文本和重新转换的支持。
query
参数指定了要查询的属性。另请参阅
- invalidate([rect=QRectF()[, layers=QGraphicsScene.SceneLayer.AllLayers]])¶
- Parameters:
rect –
QRectF
layers –
SceneLayer
的组合
警告
本节包含从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()
。另请参阅
- invalidate(x, y, w, h[, layers=QGraphicsScene.SceneLayer.AllLayers])
- Parameters:
x – 浮点数
y – 浮点数
w – 浮点数
h – 浮点数
layers –
SceneLayer
的组合
这是一个重载函数。
这个便捷函数等同于调用 invalidate(QRectF(
x
,y
,w
,h
),layers
);- isActive()¶
- Return type:
布尔
如果场景是活动的(例如,它被至少一个活动的
QGraphicsView
查看),则返回true
;否则返回false
。- itemAt(pos, deviceTransform)¶
- Parameters:
pos –
QPointF
deviceTransform –
QTransform
- Return type:
返回指定
position
处最顶部的可见项,如果该位置没有项,则返回None
。deviceTransform
是应用于视图的变换,如果场景中包含忽略变换的项目,则需要提供此变换。注意:请参阅
items()
了解此函数认为哪些项目是可见的定义。另请参阅
- itemAt(x, y, deviceTransform)
- Parameters:
x – 浮点数
y – 浮点数
deviceTransform –
QTransform
- Return type:
这是一个重载函数。
返回在指定位置 (
x
,y
) 的最顶层可见项,如果该位置没有项,则返回None
。deviceTransform
是应用于视图的变换,如果场景中包含忽略变换的项目,则需要提供此变换。这个便捷函数等同于调用
itemAt(QPointF(x, y), deviceTransform)
。注意:请参阅
items()
了解此函数认为哪些项目是可见的定义。- itemIndexMethod()¶
- Return type:
另请参阅
属性
itemIndexMethodᅟ
的获取器。返回场景中所有项目的有序列表。
order
决定了堆叠顺序。另请参阅
- items(path[, mode=Qt.IntersectsItemShape[, order=Qt.DescendingOrder[, deviceTransform=QTransform()]]])
- Parameters:
路径 –
QPainterPath
mode –
ItemSelectionMode
order –
SortOrder
deviceTransform –
QTransform
- Return type:
这是一个重载函数。
返回所有可见的项目,这些项目根据
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:
pos –
QPointF
mode –
ItemSelectionMode
order –
SortOrder
deviceTransform –
QTransform
- Return type:
返回所有可见的项目,这些项目根据
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:
多边形 –
QPolygonF
mode –
ItemSelectionMode
order –
SortOrder
deviceTransform –
QTransform
- Return type:
这是一个重载函数。
返回所有可见的项目,这些项目根据
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:
rect –
QRectF
mode –
ItemSelectionMode
order –
SortOrder
deviceTransform –
QTransform
- Return type:
这是一个重载函数。
返回所有可见的项目,这些项目根据
mode
,要么在指定的rect
内,要么与之相交,并以order
排序的列表形式返回。在这种情况下,“可见”定义为:isVisible()返回true
,effectiveOpacity()返回的值大于0.0(即完全不透明),并且父项目没有裁剪它。mode
的默认值是 Qt::IntersectsItemShape;所有其精确形状与rect
相交或被其包含的项目都将被返回。deviceTransform
是应用于视图的变换,如果场景中包含忽略变换的项目,则需要提供此变换。另请参阅
itemAt()
排序
- items(x, y, w, h, mode, order[, deviceTransform=QTransform()])
- Parameters:
x – 浮点数
y – 浮点数
w – 浮点数
h – 浮点数
mode –
ItemSelectionMode
order –
SortOrder
deviceTransform –
QTransform
- Return type:
这是一个重载函数。
返回所有可见的项目,这些项目根据
mode
,要么在由x
、y
、w
和h
定义的矩形内,要么与该矩形相交,并使用order
排序的列表。在这种情况下,“可见”定义了以下项目:isVisible()返回true
,effectiveOpacity()返回大于0.0的值(完全透明),并且父项目没有裁剪它。deviceTransform
是应用于视图的变换,如果场景中包含忽略变换的项目,则需要提供此变换。计算并返回场景上所有项目的边界矩形。此函数通过遍历所有项目来工作,因此对于大型场景可能会很慢。
另请参阅
此事件处理程序,用于事件
keyEvent
,可以在子类中重新实现以接收按键事件。默认实现将事件转发给当前焦点项。此事件处理程序,用于事件
keyEvent
,可以在子类中重新实现以接收按键释放事件。默认实现将事件转发给当前焦点项。- minimumRenderSize()¶
- Return type:
浮点数
属性
minimumRenderSizeᅟ
的获取器。- mouseDoubleClickEvent(event)¶
- Parameters:
此事件处理程序,用于事件
mouseEvent
,可以在子类中重新实现以接收场景的鼠标双击事件。如果有人在场景上双击,场景将首先接收到一个鼠标按下事件,接着是一个释放事件(即点击),然后是一个双击事件,最后是一个释放事件。如果双击事件被传递到与接收第一次按下和释放的项目不同的项目,它将作为按下事件传递。然而,在这种情况下,三击事件不会作为双击事件传递。
默认实现类似于
mousePressEvent()
。注意:请参阅
items()
了解此函数认为哪些项目是可见的定义。- mouseGrabberItem()¶
- Return type:
返回当前的鼠标抓取项,如果没有项正在抓取鼠标,则返回
None
。鼠标抓取项是接收发送到场景的所有鼠标事件的项。当一个项目接收并接受鼠标按下事件时,它将成为鼠标抓取器,并且它将保持鼠标抓取器的状态,直到发生以下任一事件:
如果项目在没有其他按钮按下时接收到鼠标释放事件,它将失去鼠标抓取。
如果项目变为不可见(即有人调用
item->setVisible(false)
),或者如果它变为禁用(即有人调用item->setEnabled(false)
),它将失去鼠标抓取。如果项目从场景中移除,它将失去鼠标抓取。
如果项目失去鼠标抓取,场景将忽略所有鼠标事件,直到新项目抓取鼠标(即,直到新项目接收到鼠标按下事件)。
- mouseMoveEvent(event)¶
- Parameters:
此事件处理程序,用于事件
mouseEvent
,可以在子类中重新实现以接收场景的鼠标移动事件。默认实现取决于鼠标抓取器的状态。如果有鼠标抓取器项目,事件将发送到鼠标抓取器。如果在当前位置有任何接受悬停事件的项目,事件将被转换为悬停事件并被接受;否则它将被忽略。
- mousePressEvent(event)¶
- Parameters:
此事件处理程序,用于事件
mouseEvent
,可以在子类中重新实现以接收场景的鼠标按下事件。默认实现取决于场景的状态。如果有鼠标抓取器项目,则事件将发送到鼠标抓取器。否则,它将被转发到场景位置接受鼠标事件的最顶层可见项目,并且该项目立即成为鼠标抓取器项目。
如果场景上给定位置没有项目,则选择区域被重置,任何焦点项目失去其输入焦点,然后事件被忽略。
注意:请参阅
items()
了解此函数认为哪些项目是可见的定义。- mouseReleaseEvent(event)¶
- Parameters:
此事件处理程序,用于事件
mouseEvent
,可以在子类中重新实现以接收场景的鼠标释放事件。默认实现取决于鼠标抓取器的状态。如果没有鼠标抓取器,事件将被忽略。否则,如果有鼠标抓取器项目,事件将被发送到鼠标抓取器。如果此鼠标释放代表鼠标上最后一个按下的按钮,鼠标抓取器项目将失去鼠标抓取。
- palette()¶
- Return type:
另请参阅
属性
paletteᅟ
的获取器。- removeItem(item)¶
- Parameters:
项目 –
QGraphicsItem
从场景中移除项目
item
及其所有子项。item
的所有权将转移给调用者(即,QGraphicsScene
在被销毁时将不再删除item
)。另请参阅
- render(painter[, target=QRectF()[, source=QRectF()[, aspectRatioMode=Qt.KeepAspectRatio]]])¶
- Parameters:
画家 –
QPainter
target –
QRectF
source –
QRectF
aspectRatioMode –
AspectRatioMode
警告
本节包含从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
。另请参阅
- sceneRect()¶
- Return type:
另请参阅
属性
sceneRectᅟ
的获取器。每当场景矩形发生变化时,
QGraphicsScene
会发出此信号。rect
参数是新的场景矩形。另请参阅
- selectedItems()¶
- Return type:
返回当前所有已选项目的列表。项目以无特定顺序返回。
另请参阅
- selectionArea()¶
- Return type:
返回之前使用
setSelectionArea()
设置的选区区域,如果未设置选区区域,则返回一个空的QPainterPath。另请参阅
- selectionChanged()¶
每当选择发生变化时,
QGraphicsScene
会发出此信号。您可以调用selectedItems()
来获取新的选中项目列表。每当一个项目被选中或取消选中,设置、清除或以其他方式更改选择区域,如果预选项目被添加到场景中,或者如果选中的项目从场景中移除时,选择都会发生变化。
QGraphicsScene
仅在组选择操作时发出此信号一次。例如,如果您设置了一个选择区域,选择或取消选择一个QGraphicsItemGroup
,或者如果您从场景中添加或移除包含多个选定项的父项,selectionChanged() 仅在操作完成后发出一次(而不是为每个项发出一次)。- sendEvent(item, event)¶
- Parameters:
项目 –
QGraphicsItem
event –
QEvent
- Return type:
布尔
将事件
event
发送到项目item
,可能会通过事件过滤器。只有在项目启用时才会发送事件。
如果事件被过滤或项目被禁用,则返回
false
。否则返回事件处理程序返回的值。- setActivePanel(item)¶
- Parameters:
项目 –
QGraphicsItem
激活
item
,它必须是此场景中的一个项目。你也可以为item
传递0,在这种情况下QGraphicsScene
将停用任何当前活动的面板。如果场景当前处于非活动状态,
item
将保持非活动状态,直到场景变为活动状态(或者,如果item
是None
,则不会激活任何项目)。- setActiveWindow(widget)¶
- Parameters:
widget –
QGraphicsWidget
激活
widget
,它必须是此场景中的一个小部件。你也可以为widget
传递0,在这种情况下,QGraphicsScene
将停用任何当前活动的窗口。属性
backgroundBrushᅟ
的设置器。- setBspTreeDepth(depth)¶
- Parameters:
深度 – int
另请参阅
属性
bspTreeDepthᅟ
的设置器。- setFocus([focusReason=Qt.OtherFocusReason])¶
- Parameters:
focusReason –
FocusReason
通过向场景发送一个QFocusEvent来设置场景的焦点,传递
focusReason
作为原因。如果场景在之前失去焦点后重新获得焦点,而某个项目之前拥有焦点,则最后一个焦点项目将以focusReason
作为原因接收焦点。如果场景已经获得焦点,此函数不执行任何操作。
- setFocusItem(item[, focusReason=Qt.OtherFocusReason])¶
- Parameters:
项目 –
QGraphicsItem
focusReason –
FocusReason
将场景的焦点项设置为
item
,焦点原因为focusReason
,在此之前会移除任何可能已经拥有焦点的先前项的焦点。如果
item
是None
,或者它不接受焦点(即它没有启用ItemIsFocusable
标志),或者不可见或未启用,此函数仅从任何先前的焦点项中移除焦点。如果项目不是
None
,并且场景当前没有焦点(即hasFocus()
返回false
),此函数将自动调用setFocus()
。- setFocusOnTouch(enabled)¶
- Parameters:
enabled – 布尔值
另请参阅
属性
focusOnTouchᅟ
的设置器。属性
fontᅟ
的设置器。属性
foregroundBrushᅟ
的设置器。- setItemIndexMethod(method)¶
- Parameters:
方法 –
ItemIndexMethod
另请参阅
属性
itemIndexMethodᅟ
的设置器。- setMinimumRenderSize(minSize)¶
- Parameters:
minSize – 浮点数
另请参阅
属性
minimumRenderSizeᅟ
的设置器。属性
paletteᅟ
的设置器。属性
sceneRectᅟ
的设置器。- setSceneRect(x, y, w, h)
- Parameters:
x – 浮点数
y – 浮点数
w – 浮点数
h – 浮点数
- setSelectionArea(path, deviceTransform)¶
- Parameters:
路径 –
QPainterPath
deviceTransform –
QTransform
将选择区域设置为
path
。该区域内的所有项目将立即被选中,而区域外的所有项目将被取消选中。您可以通过调用selectedItems()
来获取所有选中项目的列表。deviceTransform
是应用于视图的变换,如果场景中包含忽略变换的项目,则需要提供此变换。要选择一个项目,它必须被标记为可选择的(
ItemIsSelectable
)。- setSelectionArea(path[, selectionOperation=Qt.ReplaceSelection[, mode=Qt.IntersectsItemShape[, deviceTransform=QTransform()]]])
- Parameters:
路径 –
QPainterPath
selectionOperation –
ItemSelectionOperation
mode –
ItemSelectionMode
deviceTransform –
QTransform
这是一个重载函数。
使用
mode
来确定项目是否包含在选择区域中,将选择区域设置为path
。deviceTransform
是应用于视图的变换,如果场景中包含忽略变换的项目,则需要提供此变换。selectionOperation
决定了如何处理当前选中的项目。- setStickyFocus(enabled)¶
- Parameters:
enabled – 布尔值
另请参阅
属性
stickyFocusᅟ
的设置器。设置或替换场景的样式为
style
,并将样式重新分配给此场景。任何先前分配的样式将被删除。场景的样式默认为style()
,并作为场景中所有QGraphicsWidget
项目的默认样式。更改样式,无论是直接通过调用此函数,还是间接通过调用
setStyle()
,都会自动更新场景中所有未明确分配样式的小部件的样式。如果
style
是None
,QGraphicsScene
将恢复到style()
。另请参阅
- stickyFocus()¶
- Return type:
布尔
另请参阅
属性
stickyFocusᅟ
的获取器。返回场景的样式,如果场景没有明确分配样式,则与
style()
相同。另请参阅
安排重新绘制场景上的区域
rect
。另请参阅
- update(x, y, w, h)
- Parameters:
x – 浮点数
y – 浮点数
w – 浮点数
h – 浮点数
这是一个重载函数。
此函数等同于调用 update(QRectF(
x
,y
,w
,h
));- views()¶
- Return type:
返回显示此场景的所有视图的列表。
另请参阅
- wheelEvent(event)¶
- Parameters:
此事件处理程序,用于事件
wheelEvent
,可以在子类中重新实现以接收场景的鼠标滚轮事件。默认情况下,事件会传递给光标下最顶层的可见项。如果被忽略,事件会传播到下方的项,直到事件被接受或到达场景。如果没有项接受事件,它将被忽略。
注意:请参阅
items()
了解此函数认为哪些项目是可见的定义。另请参阅
- width()¶
- Return type:
浮点数
这个便捷函数等同于调用
sceneRect()
.width()。另请参阅