class QQuickItem#

QQuickItem 类提供了 Qt Quick 中所有视觉项中最基本的功能。...

Inheritance diagram of PySide6.QtQuick.QQuickItem

继承自:QQuickRhiItemQQuickPaintedItemQQuickFramebufferObject

概要#

属性#

方法#

虚方法#

插槽#

信号#

注意

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

详细说明#

Qt Quick中所有视觉项都继承自QQuickItem 。虽然QQuickItem实例没有视觉表现,但它定义了所有视觉项共有的属性,例如x和y位置、宽度和高度、《锚定位》和关键处理支持。

您可以继承QQuickItem以提供继承这些功能的自定义视觉项。

自定义场景图项#

所有视觉QML项都使用场景图进行渲染,默认实现是一个底层、高性能的渲染堆栈,紧密关联于加速图形API,如OpenGL、Vulkan、Metal或Direct 3D。可以通过设置ItemHasContents标志并重写updatePaintNode()函数,为QQuickItem的子类添加自定义内容到场景图。

警告

图形操作和与场景图的交互必须仅发生在渲染线程上,主要是updatePaintNode()调用期间。最好的做法是在updatePaintNode()函数内仅使用带有“QSG”前缀的类。

注意

应仅在场景图的渲染线程上使用所有带有QSG前缀的类。有关更多信息,请参阅《场景图和渲染》。

图形资源处理#

处理场景图中使用的图形资源清理的最佳方式是依赖于节点的自动清理。从QSGNode(通过updatePaintNode() 返回的自动在正确的线程和正确的时间删除。通过使用OwnedByParent(默认设置)来管理QSGNode 实例的树。因此,对于大多数自定义场景图项,不需要额外的工作。

存储图形资源在节点树之外的实施,例如实现textureProvider() 的项,需要根据该项在 QML 中的使用方式正确地清理。要处理的情况有

  • 场景图无效化;这可能会发生,取决于平台和 QQuickWindow 配置,当使用 QQuickWindow::hide() 隐藏窗口或关闭窗口时。如果项类实现了名为 invalidateSceneGraph()slot,此槽将在 GUI 线程被阻塞时在渲染线程上调用。这相当于连接到 sceneGraphInvalidated() 。当通过 OpenGL 渲染时,当调用此槽时,该项窗口的 OpenGL 上下文将绑定。唯一例外是如果原生 OpenGL 在 Qt 控制之外被销毁,例如通过 EGL_CONTEXT_LOST

  • 项从场景中移除;如果一个项从场景中取出,例如因为它父项被设置为 null 或另一个窗口中的项,将在 GUI 线程上调用 releaseResources()。应使用 scheduleRenderJob() 来安排渲染资源的清理。

  • 项被删除;当项的析构函数运行时,它应该删除它拥有的任何图形资源。如果上述两个条件中没有一个已经满足,该项将位于窗口中,并且可以使用 scheduleRenderJob() 来进行清理。如果一个实现忽略了 releaseResources() 的调用,那么在许多情况下该项将不再有权访问 QQuickWindow,因此没有安排清理的方式。

使用scheduleRenderJob()安排图形资源清理时,应使用BeforeSynchronizingStageAfterSynchronizingStage。同步阶段是场景图由于QML树的变化而改变的地方。如果在不同时间安排清理,可能会出现场景图的其它部分引用新删除的物体,因为这些部分没有更新。

注意

强烈不建议使用QObject::deleteLater()来清理图形资源,因为这会使删除操作在任意时间运行,并且当删除发生时不知道是否有OpenGL上下文被绑定。

自定义QPainter物品#

QQuickItem提供了一个子类,QQuickPaintedItem,它允许用户使用QPainter渲染内容。

警告

使用QQuickPaintedItem时,其内容使用间接2D表面进行渲染,使用软件光栅化,因此渲染是两步操作。首先光栅化表面,然后绘制表面。直接使用场景图API总是更快。

行为动画#

如果您的物品使用《贝叶斯》类型定义属性变化的动画,那么在您需要从C++修改这些属性时,应始终使用QObject::setProperty()、QQmlProperty()或QMetaProperty::write()。这确保QML引擎知道属性变化。否则,引擎将无法执行您请求的动画。注意,这些函数会有轻微的性能损失。有关更多详细信息,请参阅从C++访问QML对象类型的成员。

另见

QQuickWindow QQuickPaintedItem

class Flag#

(继承自enum.Flag) 此枚举类型用于指定各种物品属性。

常量

描述

QQuickItem.ItemClipsChildrenToShape

指示此物品应视觉上裁剪其子项,以便它们只在此物品的边界内渲染。

QQuickItem.ItemAcceptsInputMethod

指示物品支持文本输入方法。

QQuickItem.ItemIsFocusScope

指示物品是一个焦点作用域。有关更多信息,请参见《Qt Quick键盘焦点》。

QQuickItem.ItemHasContents

指示该项目包含视觉内容,应由场景图进行渲染。

QQuickItem.ItemAcceptsDrops

指示该项目接受拖放事件。

QQuickItem.ItemIsViewport

指示该项目为其子项定义了一个视口。

QQuickItem.ItemObservesViewport

指示该项目希望在具有ItemIsViewport标志的祖先项上设置时了解视口边界。

class ItemChange#

itemChange()结合使用,以通知项目有关某些类型的变化。

常量

描述

QQuickItem.ItemChildAddedChange

添加了子项。《ItemChangeData::item》包含添加的子项。

QQuickItem.ItemChildRemovedChange

移除了子项。《ItemChangeData::item》包含移除的子项。

QQuickItem.ItemSceneChange

该项被添加到或从场景中移除。《QQuickWindow》指定用于渲染场景的窗口,在《ItemChangeData::window》中使用。当项被从场景中移除时,窗口参数为null。

QQuickItem.ItemVisibleHasChanged

项的可见性已更改。《ItemChangeData::boolValue》包含新的可见性。

QQuickItem.ItemParentHasChanged

项的父项已更改.《ItemChangeData::item》包含新的父项。

QQuickItem.ItemOpacityHasChanged

项的不透明度已更改。《ItemChangeData::realValue》包含新的不透明度。

QQuickItem.ItemActiveFocusHasChanged

项的焦点已更改。《ItemChangeData::boolValue》包含项是否有焦点。

QQuickItem.ItemRotationHasChanged

项的旋转已更改。《ItemChangeData::realValue》包含新的旋转。

QQuickItem.ItemDevicePixelRatioHasChanged

项所在的屏幕的设备像素比已更改。《ItemChangedData::realValue》包含新的设备像素比。

QQuickItem.ItemAntialiasingHasChanged

抗锯齿已更改。当前(布尔)值可在《antialiasing》中找到。

QQuickItem.ItemEnabledHasChanged

项的启用状态已更改。《ItemChangeData::boolValue》包含新的启用状态。(自Qt 5.10起)

class TransformOrigin#

控制应用简单转换(如缩放)的点。

常量

描述

QQuickItem.TopLeft

项的左上角。

QQuickItem.Top

项顶部的中心点。

QQuickItem.TopRight

项的右上角。

QQuickItem.Left

垂直中点最左侧的点。

QQuickItem.Center

项的中心。

QQuickItem.Right

垂直中点最右侧的点。

QQuickItem.BottomLeft

项的左下角。

QQuickItem.Bottom

项底部的中心点。

QQuickItem.BottomRight

项的右下角。

注意

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

属性 activeFocusᅟ: bool#

该只读属性指示项是否有活动焦点。

如果activeFocus为true,则该项是当前接收键盘输入的项,或者它是当前接收键盘输入的项的FocusScope祖先。

通常,通过设置项及其封装的FocusScope对象的focus来获得activeFocus。在下面的示例中,inputfocusScope对象将具有活动焦点,而根矩形对象则不会。

访问函数
属性 activeFocusOnTabᅟ: bool#

该属性表示项是否想在标签焦点链中。默认情况下,这设置为false

访问函数
属性 antialiasingᅟ: bool#

该属性指定项是否进行抗锯齿处理。

由视觉元素使用以决定项是否应使用抗锯齿。在某些情况下,使用抗锯齿的项可能需要更多内存,且渲染速度可能较慢(有关详细信息,请参阅抗锯齿)。

默认情况下设置为false,但可能被派生元素覆盖。

访问函数
属性baselineOffset atributo: float#

指定项目基线的位置,使用本地坐标系。

文本项的基线是文本所在的一个假想线。包含文本的控件通常会将基线设置为文本的基线。

对于非文本项,使用默认的基线偏移量0。

访问函数
属性childrenRect atributo: QRectF#

此属性保存项目子项的总位置和大小。

此属性很有用,当你需要访问项目子项的总几何形状以便正确调整项目大小时。

返回的几何形状位于项目本地。例如

Item {
    x: 50
    y: 100

    // prints: QRectF(-10, -20, 30, 40)
    Component.onCompleted: print(childrenRect)

    Item {
        x: -10
        y: -20
        width: 30
        height: 40
    }
}
访问函数
属性clip atributo: bool#

此属性保留是否启用了裁剪。默认裁剪值为false

如果启用了裁剪,项目将裁剪其自己的绘制以及其子项的绘制到其边界矩形。如果你在项目的绘制操作期间设置裁剪,请记住重新设置它以防止裁剪您场景的其余部分。

注意

裁剪可能会影响渲染性能。有关更多信息,请参阅裁剪

注意

为了QML的方便,将裁剪设置为true也会设置ItemIsViewport标记,这有时可以作为优化:具有ItemObservesViewport标记的子项可能不会创建视图之外的场景图节点。但是ItemIsViewport标记也可以独立设置。

访问函数
属性containmentMask atributo: QObject#

该属性包含一个用于在 contains() 方法中使用的可选遮罩,该方法主要用于对每个 QPointerEvent 进行点击测试。

默认情况下,contains() 将返回值为 true 的任何点,只要它位于 Item 的边界框内。但任何 QQuickItem 或实现类似功能的任何 QObject 都可以用作遮罩,以便将击中测试推迟到该对象。

Q_INVOKABLE bool contains(const QPointF &point) const;

可以用于延迟击中测试的对象,例如:

注意

contains() 方法在事件传输过程中经常被调用。将击中测试推迟到另一个对象会降低其速度。如果该对象的 contains() 方法效率不高,那么 containmentMask() 可能会导致性能问题。如果你实现了自定义的 QQuickItem 子类,你可以通过覆写 contains() 来选择性地进行覆盖。

另见

contains()

访问函数
property enabledᅟ: bool#

该属性表示项目是否接收鼠标和键盘事件。默认情况下为 true。

直接设置此属性将直接影响子项目的 enabled 值。当设置为 false 时,所有子项目的 enabled 值也变为 false。当设置为 true 时,除非它们已被显式设置为 false,否则子项目的 enabled 值将返回到 true

将此属性设置为 false 将自动将 activeFocus 设置为 false,并且此项目将不再接收键盘事件。

注意

hover事件通过setAcceptHoverEvents()独立启用。因此,即使此属性为false,已禁用项也可以继续接收hover事件。这使得即使在交互项目禁用的情况下,也可以显示信息反馈(如工具提示)。对于作为项目子级添加的任何HoverHandlers,也是如此。然而,HoverHandler可以显式禁用,或者例如绑定到项目的enabled状态。

另见

可见

访问函数
属性 focus: bool#

此属性表示项目是否在包含的FocusScope内拥有焦点。如果为true,当包含的FocusScope获得活动焦点时,该项将获得活动焦点。

以下示例中,input将在scope获得活动焦点时获得活动焦点

对于此属性,整个场景将假定像焦点作用域一样行为。在实践中,这意味着以下QML在启动时将给input分配活动焦点。

另见

activeFocus Qt Quick中的键盘焦点

访问函数
属性 focusPolicy: Qt.FocusPolicy#

此属性确定项接受焦点的方式。

注意

此属性在Qt 6.7之前是控制的一个成员。

访问函数
属性 height: float#

此属性表示此项目的高度。

访问函数
属性 implicitHeight: float#
访问函数
属性 implicitWidth: float#
访问函数
属性 opacity: float#

此属性包含项目的透明度。透明度通过在 0.0(完全透明)到 1.0(完全不透明)之间的数字指定。默认值为 1.0。

当设置此属性时,指定的透明度也会应用于子项。在某些情况下,这可能会导致意外效果。例如,在下图第二组矩形中,红色矩形指定了透明度为 0.5,这影响了其蓝色子矩形的透明度,尽管子矩形没有指定透明度。

超出 0 到 1 范围的值将被限制。

+—————————————————++ | .. image:: images/declarative-item_opacity1.png|| +—————————————————++ | .. image:: images/declarative-item_opacity2.png|| +—————————————————++

更改项目的透明度不会影响项目是否接收用户输入事件。(相比之下,将 visible 属性设置为 false 将停止鼠标事件,将 enabled 属性设置为 false 将停止鼠标和键盘事件,并从项目中移除当前焦点。)

另见

可见

访问函数
属性 parent: QQuickItem#

此属性包含项目的视觉父项。

注意

视觉父项的概念与 QObject 父项的概念不同。项目的视觉父项可能不一定与其实例父项相同。有关详细信息,请参阅 概念 - Qt Quick 中的视觉父项

注意

当视觉父项被销毁时,会发出此属性的通知信号。C++ 信号处理程序不能假设视觉父项层次结构中的项目已经完全构建。使用 qobject_cast 验证父项层次结构中的项目是否可以安全地用作预期类型。

访问函数
属性 rotation: float#

此属性包含项目在 transformOrigin 点按顺时针方向旋转的度数。

默认值是 0 度(即不旋转)。

+——————————————————————————————————————————++ | .. 图片:: images/declarative-rotation.png|| +——————————————————————————————————————————++

另见

变换 旋转

访问函数
属性scaleᅟ: float#

此属性保存了此元素的缩放因子。

小于 1.0 的缩放会导致元素以较小的尺寸渲染,大于 1.0 的缩放将使元素以较大的尺寸渲染。负缩放会在渲染时镜像元素。

默认值为 1.0。

缩放是从 transformOrigin 应用。

+——————————————————————————————————————————++ | .. 图片:: images/declarative-scale.png|| +——————————————————————————————————————————++

另见

变换 缩放

访问函数
属性smoothᅟ: bool#

此属性指定元素是否平滑。

主要用于基于图像的项目以决定是否使用平滑采样。平滑采样使用线性插值执行,而非平滑采样使用最近邻。

在 Qt Quick 2.0 中,此属性对性能的影响最小。

默认情况下,此属性设置为 true

访问函数
属性stateᅟ: str#

此属性保存了项目的当前状态名称。

如果项目处于默认状态,即未设置显式状态,则此属性为空字符串。同样,您可以将项目设置为其默认状态,方法是将此属性设置为一个空字符串。

访问函数
属性transformOriginᅟ: QQuickItem.TransformOrigin#

此属性保存了缩放和旋转变换的旋转原点。

如下图中所示,有九个变换原点可用。默认变换原点是 Item.Center

../../_images/declarative-transformorigin.png
访问函数
属性 transformOriginPoint: QPointF#
访问函数
属性 visible: bool#

此属性表示项目是否可见。默认值为true。

直接设置此属性将影响子项目中的visible值。当设置为false时,所有子项目的visible值也将变为false。当设置为true时,子项目的visible值将恢复为true,除非它们已被显式设置为false

(由于这种连锁反应行为,如果属性绑定应仅对显式属性更改作出响应,则使用visible属性可能不会产生预期的效果。在这种情况下,最好使用opacity属性代替。)

如果此属性设置为false,则项目将不再接收鼠标事件,但将继续接收键盘事件,并且如果已被设置,则保留键盘focus。(相比之下,将enabled属性设置为false将停止接收鼠标和键盘事件,并从项目移除焦点。)

注意

此属性的值仅受此属性更改或父项目的visible属性更改的影响。例如,如果此项目移出屏幕或opacity更改到0,则不会改变。然而,由于历史原因,在项目构造之后,此属性为真,即使项目尚未添加到场景中。更改或读取尚未添加到场景的项目属性可能不会产生预期的结果。

注意

当视觉父项被销毁时,会发出此属性的通知信号。C++ 信号处理程序不能假设视觉父项层次结构中的项目已经完全构建。使用 qobject_cast 验证父项层次结构中的项目是否可以安全地用作预期类型。

另见

opacity enabled

访问函数
属性 width: float#

此属性表示此项目的宽度。

访问函数
属性 x: float#

定义了该项相对于其父项的 x 轴位置。

访问函数
属性 y: float#

定义了该项相对于其父项的 y 轴位置。

访问函数
属性 z: float#

设置同级项目的堆叠顺序。默认堆叠顺序为 0。

堆叠值较高的项目会在堆叠值较低的项目上方绘制。堆叠值相同的项目按出现顺序从下往上绘制。堆叠值为负的项目在其父内容下方绘制。

以下示例展示了堆叠顺序的多种效果。

../../_images/declarative-item_stacking1.png

相同 z - 后续子项在早期子项之上

../../_images/declarative-item_stacking2.png

更高的 z 在顶部

../../_images/declarative-item_stacking3.png

相同 z - 子项在父项之上

../../_images/declarative-item_stacking4.png

更低的 z 在下方

访问函数
__init__([parent=None])#
参数:

parentQQuickItem

使用给定的 parent 构造一个 QQuickItem

parent 既能作为 视觉 父项,也能作为 QObject 父项。

acceptHoverEvents()#
返回类型:

bool

返回此项目是否接受悬停事件。

默认值为 false。

如果这是 false,则该项目不会通过 hoverEnterEvent()hoverMoveEvent()hoverLeaveEvent() 函数接收任何悬停事件。

acceptTouchEvents()#
返回类型:

bool

返回此项是否接受触摸事件。

默认值是 false

如果此值为 false,则项将通过 touchEvent() 函数不接受任何触摸事件。

acceptedMouseButtons()#
返回类型:

MouseButton 的组合

返回此项接受的鼠标按钮。

默认值是 Qt::NoButton;即不接受任何鼠标按钮。

如果项不接受特定鼠标事件的鼠标按钮,则该鼠标事件将不会传递给该项,而会传递给项层次结构中的下一个项。

activeFocusChanged(arg__1)#
参数:

arg__1 – bool

属性 activeFocus 的通知信号。

activeFocusOnTab()#
返回类型:

bool

属性 activeFocusOnTab 的获取器。

activeFocusOnTabChanged(arg__1)#
参数:

arg__1 – bool

属性 activeFocusOnTab 的通知信号。

antialiasing()#
返回类型:

bool

属性 antialiasing 的获取器。

antialiasingChanged(arg__1)#
参数:

arg__1 – bool

属性 antialiasing 的通知信号。

baselineOffset()#
返回类型:

float

属性 baselineOffset 的获取器。

baselineOffsetChanged(arg__1)#
参数:

arg__1 – float

属性 baselineOffset 的通知信号。

boundingRect()#
返回类型:

QRectF

返回项在其自身坐标系中的范围:从 0, 0width()height() 的矩形。

childAt(x, y)#
参数:
  • x – float

  • y – float

返回类型:

QQuickItem

在当前项的坐标系中,返回在点 (x, y) 处找到的第一个可见子项。

如果没有这样的项,则返回 None

childItems()#
返回类型:

. QQuickItem 类型的列表

返回此项的子项。

childMouseEventFilter(arg__1, arg__2)#
参数:
返回类型:

bool

重写此方法以过滤此项的子项接收到的指针事件。

如果 filtersChildMouseEvents()true,则将调用此方法。

如果指定的 event 应该不传递给指定的子 item,则返回 true,否则返回 false。如果您返回 true,您还应该接收或忽略 event,以表示事件传播是否应该停止或继续。但是,事件将始终发送到父子链上的所有子MouseEventFilter。

注意

尽管名称如此,此功能在交付给所有子项(通常是鼠标、触摸和平板电脑事件)时过滤所有QPointerEvent实例。在子类中重写此功能时,我们建议编写仅使用在QPointerEvent中找到的访问器编写的通用事件处理代码。或者,您可以通过event->type()和/或event->device()->type()切换来以不同的方式处理不同的事件类型。

注意

过滤只是处理手势歧义(例如在按下时,您不知道用户会点击还是拖动)责任共享的一种方式。另一种方式是在按下时调用QPointerEvent::addPassiveGrabber(),以便非排他性地监视QEventPoint的进度。在任何一种情况下,正在监视的项目或指针处理器都可以在手势模式符合预期的模式下稍后抢占排他性抓取。

childrenChanged()#
childrenRect()#
返回类型:

QRectF

属性childrenRectᅟ的获取器。

childrenRectChanged(arg__1)#
参数:

arg__1QRectF

属性childrenRectᅟ的通知信号。

clip()#
返回类型:

bool

另见

setClip()

属性clipᅟ的获取器。

clipChanged(arg__1)#
参数:

arg__1 – bool

属性clipᅟ的通知信号。

clipRect()#
返回类型:

QRectF

返回此项目在其可见的 viewportItem() 中包含的矩形区域,如果有视口且设置了 ItemObservesViewport 标志;否则,返回此项目在它自己的坐标系中的扩展范围:从 0, 0width()height() 的矩形。这是当 cliptrue 时预期保持可见的区域。它也可以在 updatePaintNode() 中使用,以限制添加到场景图中的图形。

例如,一个大型绘图或大型文本文档可能在一个只占据应用程序窗口一部分大小的 Flickable 中显示:在这种情况下,Flickable 是视口项,并且可以自定义内容渲染项选择省略当前可见区域外的场景图节点。如果设置了 ItemObservesViewport 标志,则在用户在 Flickable 中滚动内容时,此区域将发生变化。

在嵌套视口项的情况下, clipRect() 是所有设置了 ItemIsViewport 标志的祖先 boundingRect 的交集,映射到本项目的坐标系。

containmentMask()#
返回类型:

QObject

属性 containmentMaskᅟ 的获取器。

containmentMaskChanged()#

属性 containmentMaskᅟ 的通知信号。

contains(point)#
参数:

pointQPointF

返回类型:

bool

如果此项目包含 point(在局部坐标系中),则返回 true,否则返回 false

此函数可以被覆盖用来处理具有自定义形状的项目的点碰撞。默认实现会检查点是否在containmentMask()设置的情况下位于其中,或者在其他情况下位于边界框内。

注意

此方法用于在事件传递过程中对每个QEventPoint进行碰撞检测,所以实现应该尽可能保持轻量。

cursor()#
返回类型:

QCursor

返回此项的游标形状。

当鼠标光标位于此项上时,鼠标光标将假定此形状,除非设置了重写游标。请参阅预定义游标对象列表,了解一系列有用的形状。

如果没有设置游标形状,此函数将返回一个具有Qt::ArrowCursor形状的光标,然而如果有重合的项目具有有效的光标,则可能显示另一个光标形状。

dragEnterEvent(arg__1)#
参数:

arg__1QDragEnterEvent

可以在子类中重新实现此事件处理程序以接收项目的拖入事件。事件信息由event参数提供。

仅当为此项设置了ItemAcceptsDrops标志时,才提供拖放事件。

默认情况下,事件被接受,因此如果重新实现此函数,不必显式接受事件。如果不接受事件,调用event->ignore()

另见

Drag Drag and Drop

dragLeaveEvent(arg__1)#
参数:

arg__1QDragLeaveEvent

可以在子类中重新实现此事件处理程序以接收项目的拖出事件。事件信息由event参数提供。

仅当为此项设置了ItemAcceptsDrops标志时,才提供拖放事件。

默认情况下,事件被接受,因此如果重新实现此函数,不必显式接受事件。如果不接受事件,调用event->ignore()

另见

Drag Drag and Drop

dragMoveEvent(arg__1)#
参数:

arg__1QDragMoveEvent

可以在子类中重新实现此事件处理程序以接收项目的拖动事件。事件信息由event参数提供。

仅当为此项设置了ItemAcceptsDrops标志时,才提供拖放事件。

默认情况下,事件被接受,因此如果重新实现此函数,不必显式接受事件。如果不接受事件,调用event->ignore()

另见

Drag Drag and Drop

dropEvent(arg__1)#
参数:

arg__1QDropEvent

该事件处理程序可以在子类中重写以接收项的拖放事件。事件信息由 event 参数提供。

仅当为此项设置了ItemAcceptsDrops标志时,才提供拖放事件。

默认情况下,事件被接受,因此如果重新实现此函数,不必显式接受事件。如果不接受事件,调用event->ignore()

另见

Drag Drag and Drop

dumpItemTree()#

递归地输出从该项开始的 项目可视化树 的一些详细信息。

注意

QObject::dumpObjectTree() 输出类似的树;但是,如 概念 - Qt Quick 中的可视化父类 中所述,项的 QObject::parent() 有时与其 parentItem() 不同。您可以通过同时输出两棵树来查看差异。

注意

Qt 的未来版本中,确切的输出格式可能发生变化。

enabledChanged()#

enabled 属性的通知信号。

ensurePolished()#

调用 updatePolish()

对于布局(或定位器)等项,这可能在接收 PolishEvent 之前延迟计算它们的 implicitWidthimplicitHeight。这可能非常有用。

通常,如果在布局中添加或删除子项,则隐式大小不会立即计算(这是一种优化)。在某些情况下,可能在添加子项后立即查询布局的隐式大小。如果这样做,请在查询隐式大小之前使用此函数。

另见

updatePolish() polish()

filtersChildMouseEvents()#
返回类型:

bool

返回是否应该通过该项过滤针对其子项的指针事件。

如果这个项目及其子项目都有 acceptTouchEvents() true,那么当发生触摸交互时,这个项目将过滤触摸事件。但是,如果这个项目或其子项目无法处理触摸事件,childMouseEventFilter() 将使用合成的鼠标事件被调用。

flags()#
返回类型:

Flag 的组合

返回该项目的项目标志。

focusChanged(arg__1)#
参数:

arg__1 – bool

属性 focus 的通知信号。

focusInEvent(arg__1)#
参数:

arg__1QFocusEvent

这个事件处理器可以在子类中重新实现以接收项目的焦点进入事件。事件信息由参数 event 提供。

默认情况下,事件被接受,因此如果重新实现此函数,不必显式接受事件。如果不接受事件,调用event->ignore()

如果您重新实现了这个函数,您应该调用基类实现。

focusOutEvent(arg__1)#
参数:

arg__1QFocusEvent

这个事件处理器可以在子类中重新实现以接收项目的焦点退出事件。事件信息由参数 event 提供。

默认情况下,事件被接受,因此如果重新实现此函数,不必显式接受事件。如果不接受事件,调用event->ignore()

focusPolicy()#
返回类型:

焦点策略

属性 focusPolicy 的获取器。

focusPolicyChanged(arg__1)#
参数:

arg__1FocusPolicy

属性 focusPolicyᅟ 的通知信号。

forceActiveFocus()#

强制在项目上设置活动焦点。

此方法将焦点设置在项目上,并确保对象层次结构中所有祖先的 FocusScope 对象也都获得 focus

焦点改变的原因将是 Qt::OtherFocusReason。通过重载方法来指定焦点原因,可以更好地处理焦点更改。

另见

activeFocus

forceActiveFocus(reason)
参数:

reasonFocusReason

这是一个重载的函数。

使用给定的 reason 强制在项目上设置活动焦点。

此方法将焦点设置在项目上,并确保对象层次结构中所有祖先的 FocusScope 对象也都获得 focus

另见

activeFocus FocusReason

geometryChange(newGeometry, oldGeometry)#
参数:

当项目中从 oldGeometrynewGeometry 的几何形状发生变化时,将调用此函数。如果两个几何形状相同,则不执行任何操作。

派生类必须在其实例化中调用基类方法。

grabMouse()#

使用 QPointerEvent::setExclusiveGrabber()。

捕获鼠标输入。

在调用 ungrabMouse() 之前,此项目将接收到所有鼠标事件。通常不应调用此函数,因为接受例如鼠标按下事件会确保后续事件会被传递给该项目。如果项目要接管当前接收器的鼠标事件,则需要调用此函数。

警告

应谨慎使用此函数。

grabToImage(callback[, targetSize=QSize()])#
参数:
返回类型:

bool

grabToImage([targetSize=QSize()])
参数:

目标大小QSize

返回类型:

QSharedPointer

将项抓取到内存中的图像。

抓取操作异步进行,当抓取完成后,会发出信号 ready()

使用 targetSize 来指定目标图像的大小。默认情况下,结果将与项的大小相同。

如果无法启动抓取,该函数返回 null

注意

此函数将项渲染到离屏表面,并将该表面从GPU内存复制到CPU内存,这可能相当昂贵。对于“实时”预览,请使用 ShaderEffectSource

另见

grabWindow()

grabTouchPoints(ids)#
参数:

ids – 整数列表

使用 QPointerEvent::setExclusiveGrabber(). 抓取由 ids 指定的触摸点。

这些触摸点将保留在项中,直到它们被释放。或者,可以被过滤器项(如 Flickable)“窃取”。使用 setKeepTouchGrab() 防止抓取被窃取。

hasActiveFocus()#
返回类型:

bool

属性 activeFocusᅟ 的获取器。

hasFocus()#
返回类型:

bool

属性 focusᅟ 的获取器。

height()#
返回类型:

float

另见

setHeight()

属性 heightᅟ 的获取器。

heightChanged()#

属性 heightᅟ 发出的通知信号。

heightValid()#
返回类型:

bool

返回是否显式设置了高度属性。

hoverEnterEvent(event)#
参数:

eventQHoverEvent

该事件处理器可以在子类中重写以接收对项目的悬停进入事件。事件信息由 event 参数提供。

只有当 acceptHoverEvents() 为真时,才会提供悬停事件。

默认情况下,事件被接受,因此如果重新实现此函数,不必显式接受事件。如果不接受事件,调用event->ignore()

hoverLeaveEvent(event)#
参数:

eventQHoverEvent

该事件处理器可以在子类中重写以接收对项目的悬停离开事件。事件信息由 event 参数提供。

只有当 acceptHoverEvents() 为真时,才会提供悬停事件。

默认情况下,事件被接受,因此如果重新实现此函数,不必显式接受事件。如果不接受事件,调用event->ignore()

hoverMoveEvent(event)#
参数:

eventQHoverEvent

该事件处理器可以在子类中重写以接收对项目的悬停移动事件。事件信息由 event 参数提供。

只有当 acceptHoverEvents() 为真时,才会提供悬停事件。

默认情况下,事件被接受,因此如果重新实现此函数,不必显式接受事件。如果不接受事件,调用event->ignore()

implicitHeight()#
返回类型:

float

属性 implicitHeightᅟ 的获取器。

implicitHeightChanged()#

属性 implicitHeightᅟ 的通知信号。

implicitWidth()#
返回类型:

float

返回由其他确定内容的属性隐含的项的宽度。

属性 implicitWidthᅟ 的获取器。

implicitWidthChanged()#

属性 implicitWidthᅟ 的通知信号。

inputMethodEvent(arg__1)#
参数:

arg__1QInputMethodEvent

该事件处理器可以在子类中重写以接收对项目的输入法事件。事件信息由 event 参数提供。

默认情况下,事件被接受,因此如果重新实现此函数,不必显式接受事件。如果不接受事件,调用event->ignore()

inputMethodQuery(query)#
参数:

queryInputMethodQuery

返回类型:

对象

此方法仅适用于输入项。

如果此项是输入项,则应重写此方法以返回针对给定 query 的相关输入法标志。

isAncestorOf(child)#
参数:

childQQuickItem

返回类型:

bool

返回 true 表示此项是 child 的祖先(即,如果此项是 child 的父项,或者 child 父项的祖先之一)。

另见

parentItem()

isComponentComplete()#
返回类型:

bool

如果 QML 组件的构建完成则返回 true;否则返回 false。

通常希望在组件完成构建后再进行一些处理。

另见

componentComplete()

isEnabled()#
返回类型:

bool

属性 enabledᅟ 的获取器。

isFocusScope()#
返回类型:

bool

返回 true 表示此项是一个焦点作用域,否则返回 false

isTextureProvider()#
返回类型:

bool

返回 true 表示此项是纹理提供者。默认实现返回 false

此函数可以从任何线程中调用。

isUnderMouse()#
返回类型:

bool

isVisible()#
返回类型:

bool

属性 visibleᅟ 的获取器。

itemTransform(arg__1)#
参数:

arg__1QQuickItem

返回类型:

PyTuple

keepMouseGrab()#
返回类型:

bool

返回是否应该使鼠标输入独占此项。

keepTouchGrab()#
返回类型:

bool

返回是否应该使此项捕获的触摸点独占此项。

keyPressEvent(event)#
参数:

eventQKeyEvent

此事件处理程序可以在子类中重新实现,以接收项目的按键事件。事件信息由 event 参数提供。

默认情况下,事件被接受,因此如果重新实现此函数,不必显式接受事件。如果不接受事件,调用event->ignore()

keyReleaseEvent(event)#
参数:

eventQKeyEvent

此事件处理程序可以在子类中重新实现,以接收项目的按键释放事件。事件信息由 event 参数提供。

默认情况下,事件被接受,因此如果重新实现此函数,不必显式接受事件。如果不接受事件,调用event->ignore()

mapFromGlobal(point)#
参数:

pointQPointF

返回类型:

QPointF

将给定 point 在全局屏幕坐标系中的内容映射到该项目的坐标系中等效的点,并返回映射后的坐标。

在映射过程中使用了项目的以下属性:xyscalerotationtransformOrigintransform

例如,这可以帮助向 Qt Quick 组件添加弹出窗口。

注意

窗口定位由窗口管理器完成,此值仅作为提示。因此,结果窗口位置可能与预期不同。

注意

如果此项目在子场景中,例如映射到 3D 模型对象,则 UV 映射将纳入此转换,以便它真正从屏幕坐标转换为此项目的坐标,只要 point 实际上位于此项目的范围内。其他映射函数尚不支持这种方式。

mapFromGlobal(x, y)
参数:
  • x – float

  • y – float

返回类型:

QPointF

mapFromItem(item, point)#
参数:
返回类型:

QPointF

将给定的 pointitem 坐标系中映射到本项坐标系的等效点,并返回映射后的坐标。

在映射过程中使用了项目的以下属性:xyscalerotationtransformOrigintransform

如果 itemNone,则此操作将 point 从场景坐标系统映射。

mapFromItem(item, rect)
参数:
返回类型:

QRectF

将给定的 pointitem 坐标系中映射到本项坐标系的等效点,并返回映射后的坐标。

在映射过程中使用了项目的以下属性:xyscalerotationtransformOrigintransform

如果 itemNone,则此操作将 point 从场景坐标系统映射。

mapFromItem(item, x, y)
参数:
返回类型:

QPointF

mapFromItem(item, x, y, width, height)
参数:
  • itemQQuickItem

  • x – float

  • y – float

  • width – float

  • height – float

返回类型:

QRectF

mapFromScene(point)#
参数:

pointQPointF

返回类型:

QPointF

将给定 point 在场景坐标系中映射到本项坐标系的等效点,并返回映射后的坐标。

在映射过程中使用了项目的以下属性:xyscalerotationtransformOrigintransform

mapRectFromItem(item, rect)#
参数:
返回类型:

QRectF

将给定 rectitem 坐标系中映射到本项坐标系的等效矩形区域,并返回映射后的矩形值。

在映射过程中使用了项目的以下属性:xyscalerotationtransformOrigintransform

如果 itemNone,则将 rect 从场景坐标系统映射。

mapRectFromScene(rect)#
参数:

rectQRectF

返回类型:

QRectF

将给定 rect 在场景坐标系中映射到本项坐标系的等效矩形区域,并返回映射后的矩形值。

在映射过程中使用了项目的以下属性:xyscalerotationtransformOrigintransform

mapRectToItem(item, rect)#
参数:
返回类型:

QRectF

将给定 rect 在本项坐标系中映射到 item 的坐标系的等效矩形区域,并返回映射后的矩形值。

在映射过程中使用了项目的以下属性:xyscalerotationtransformOrigintransform

如果 itemNone,则此函数将 rect 映射到场景坐标系。

mapRectToScene(rect)#
参数:

rectQRectF

返回类型:

QRectF

将给定的矩形 rect 在此项目坐标系中映射到场景坐标系中相对应的矩形区域,并返回映射后的矩形值。

在映射过程中使用了项目的以下属性:xyscalerotationtransformOrigintransform

mapToGlobal(point)#
参数:

pointQPointF

返回类型:

QPointF

将给定的 point 在此项目坐标系中映射到全局屏幕坐标系中的等效点,并返回映射的坐标。

在映射过程中使用了项目的以下属性:xyscalerotationtransformOrigintransform

例如,这可以帮助向 Qt Quick 组件添加弹出窗口。

注意

窗口定位由窗口管理器完成,此值仅作为提示。因此,结果窗口位置可能与预期不同。

mapToGlobal(x, y)
参数:
  • x – float

  • y – float

返回类型:

QPointF

mapToItem(item, point)#
参数:
返回类型:

QPointF

将给定的 point 在此项目坐标系中映射到 item 的坐标系中的等效点,并返回映射的坐标。

在映射过程中使用了项目的以下属性:xyscalerotationtransformOrigintransform

如果 itemNone,则此函数将 point 映射到场景坐标系。

mapToItem(item, rect)
参数:
返回类型:

QRectF

将给定的 point 在此项目坐标系中映射到 item 的坐标系中的等效点,并返回映射的坐标。

在映射过程中使用了项目的以下属性:xyscalerotationtransformOrigintransform

如果 itemNone,则此函数将 point 映射到场景坐标系。

mapToItem(item, x, y)
参数:
返回类型:

QPointF

mapToItem(item, x, y, width, height)
参数:
  • itemQQuickItem

  • x – float

  • y – float

  • width – float

  • height – float

返回类型:

QRectF

mapToScene(point)#
参数:

pointQPointF

返回类型:

QPointF

将给定的 point 在此项目坐标系中映射到场景坐标系中的等效点,并返回映射的坐标。

在映射过程中使用了项目的以下属性:xyscalerotationtransformOrigintransform

mouseDoubleClickEvent(event)#
参数:

eventQMouseEvent

此事件处理程序可以在子类中重新实现以接收项目的鼠标双击事件。事件信息由 event 参数提供。

默认情况下,事件被接受,因此如果重新实现此函数,不必显式接受事件。如果不接受事件,调用event->ignore()

mouseMoveEvent(event)#
参数:

eventQMouseEvent

此事件处理程序可以由子类重写以接收项目的鼠标移动事件。事件信息由参数 event 提供。

为了接收鼠标移动事件,必须接受之前的鼠标按下事件(例如通过重写 mousePressEvent() 等)以及 acceptedMouseButtons() 必须返回相关的鼠标按钮。

默认情况下,事件被接受,因此如果重新实现此函数,不必显式接受事件。如果不接受事件,调用event->ignore()

mousePressEvent(event)#
参数:

eventQMouseEvent

此事件处理程序可以由子类重写以接收项目的鼠标按下事件。事件信息由参数 event 提供。

为了接收鼠标按下事件,acceptedMouseButtons() 必须返回相关的鼠标按钮。

默认情况下,事件被接受,因此如果重新实现此函数,不必显式接受事件。如果不接受事件,调用event->ignore()

mouseReleaseEvent(event)#
参数:

eventQMouseEvent

此事件处理程序可以由子类重写以接收项目的鼠标释放事件。事件信息由参数 event 提供。

为了接收鼠标释放事件,必须接受之前的鼠标按下事件(例如通过重写 mousePressEvent() 等)以及 acceptedMouseButtons() 必须返回相关的鼠标按钮。

默认情况下,事件被接受,因此如果重新实现此函数,不必显式接受事件。如果不接受事件,调用event->ignore()

mouseUngrabEvent()#

此事件处理程序可以由子类重写,以通知当此项目发生鼠标未捕获事件时。

nextItemInFocusChain([forward=true])#
参数:

forward – bool

返回类型:

QQuickItem

返回与该项目相邻的焦点链中的项目。如果 forwardtrue,或未提供,它是前进方向上的下一个项目。如果 forwardfalse,它是后退方向上的下一个项目。

opacity()#
返回类型:

float

另见

setOpacity()

属性 opacity 的获取器。

opacityChanged()#

属性 opacity 的通知信号。

paletteChanged()#
paletteCreated()
parentChanged(arg__1)#
参数:

arg__1QQuickItem

属性 parent 的通知信号。

parentItem()#
返回类型:

QQuickItem

属性 parent 的获取器。

polish()#

为该项调度一个抛光事件。

当场景图处理请求时,它将调用该项的 updatePolish()

position()#
返回类型:

QPointF

releaseResources()#

当项应该释放由 updatePaintNode() 返回的节点管理的图形资源时,将调用此函数。

当该项即将从之前渲染到的窗口中删除时,会发生这种情况。当函数被调用时,该项目保证有一个 window

此函数在 GUI 线程上调用,当使用时渲染线程的状态是未知的。对象不应直接删除,而应使用 scheduleRenderJob() 调度清理。

另见

图形资源处理

resetAntialiasing()#

属性 antialiasing 的重置函数。

resetHeight()#

属性 height 的重置功能。

resetWidth()#

属性 width 的重置功能。

rotation()#
返回类型:

float

另见

setRotation()

属性 rotation 的获取器。

rotationChanged()#

属性 rotation 的通知信号。

scale()#
返回类型:

float

另见

setScale()

属性 scale 的获取器。

scaleChanged()#

属性 scale 的通知信号。

scopedFocusItem()#
返回类型:

QQuickItem

如果此项目是焦点范围,则返回当前具有焦点的焦点链中的项目。

如果没有此项目是焦点范围,则返回 None

setAcceptHoverEvents(enabled)#
参数:

enabled – bool

如果 enabled 为 true,则将项目设置为接收悬停事件;否则,此项目不接受悬停事件。

setAcceptTouchEvents(accept)#
参数:

accept – bool

如果 enabled 为 true,则将项目设置为接收触摸事件;否则,此项目不接受触摸事件。

setAcceptedMouseButtons(buttons)#
参数:

buttonsMouseButton 的组合

将此项目接受的鼠标按钮设置为 buttons

注意

在Qt 5中,调用setAcceptedMouseButtons()隐式地使一个项目接收触摸事件以及鼠标事件;但建议调用setAcceptTouchEvents()来订阅它们。在Qt 6中,必须调用setAcceptTouchEvents()以继续接收它们。

setActiveFocusOnTab(arg__1)#
参数:

arg__1 – bool

设置属性activeFocusOnTab的值。

setAntialiasing(arg__1)#
参数:

arg__1 – bool

设置属性antialiasing的值。

setBaselineOffset(arg__1)#
参数:

arg__1 – float

设置属性baselineOffset的值。

setClip(arg__1)#
参数:

arg__1 – bool

另见

clip()

设置属性clip的值。

setContainmentMask(mask)#
参数:

maskQObject

设置属性containmentMask的值。

setCursor(cursor)#
参数:

cursorQCursor

设置此项目的光标形状。

setEnabled(arg__1)#
参数:

arg__1 – bool

另见

isEnabled()

设置属性Enabled的值。

setFiltersChildMouseEvents(filter)#
参数:

filter – bool

设置是否应将指向此项目子项的指针事件通过此项目进行过滤。

如果 filter 为 true,则在触发子项的指针事件时将调用 childMouseEventFilter()

setFlag(flag[, enabled=true])#
参数:
  • flagFlag

  • enabled – bool

当 enabled 为 true 时,为该项目启用指定的 flag;如果 enabled 为 false,则禁用标志。

这为项目提供各种提示;例如,ItemClipsChildrenToShape 标志表示应将此项目的所有子项剪裁以适合项区域。

setFlags(flags)#
参数:

flagsFlag 的组合

为该项目启用指定的 flags

setFocus(arg__1)#
参数:

arg__1 – bool

另见

hasFocus()

属性 focusᅟ 的设置器。

setFocus(focus, reason)
参数:
setFocusPolicy(policy)#
参数:

policyFocusPolicy

将此项目的焦点策略设置为 policy

另见

focusPolicy()

属性 focusPolicyᅟ 的设置器。

setHeight(arg__1)#
参数:

arg__1 – float

另见

height()

设置属性 height属性 的值。

setImplicitHeight(arg__1)#
参数:

arg__1 – float

设置属性 implicitHeight属性 的值。

setImplicitSize(arg__1, arg__2)#
参数:
  • arg__1 – float

  • arg__2 – 浮点数

setImplicitWidth(arg__1)#
参数:

arg__1 – float

设置属性 implicitWidth属性 的值。

setKeepMouseGrab(arg__1)#
参数:

arg__1 – bool

设置是否将鼠标输入专用于此项目。

对于希望在预定义手势之后抓取并保持鼠标交互的项目很有用。例如,一个关心水平鼠标移动的项目在超过阈值后可以将 keepMouseGrab方法 设置为 true。一旦 keepMouseGrab方法 被设置为 true,过滤项目将不会对鼠标事件做出反应。

如果 keep 为 false,过滤项目可能会偷走抓取。例如,如果 Flickable 检测到用户开始移动视口,它可能会尝试偷取一个鼠标抓取。

setKeepTouchGrab(arg__1)#
参数:

arg__1 – bool

设置被此项目抓取的触摸点是否应专属于此项目。

对于希望在预定义手势之后抓取并保持特定触摸点的项目很有用。例如,一个关心水平触摸点移动的项目在超过阈值后可以将 setKeepTouchGrab 设置为 true。一旦 setKeepTouchGrab 被设置为 true,过滤项目将不会对相关触摸点做出反应。

如果 keep 为 false,过滤项目可能会偷走抓取。例如,如果 Flickable 检测到用户开始移动视口,它可能会尝试偷走一个触摸点抓取。

setOpacity(arg__1)#
参数:

arg__1 – float

另见

opacity()

属性 opacity 的设置器。

setParentItem(parent)#
参数:

parentQQuickItem

另见

parentItem()

属性 parent 的设置器。

setPosition(arg__1)#
参数:

arg__1QPointF

setRotation(arg__1)#
参数:

arg__1 – float

另见

rotation()

属性 rotation 的设置器。

setScale(arg__1)#
参数:

arg__1 – float

另见

scale()

属性 scale 的设置器。

setSize(size)#
参数:

sizeQSizeF

将项的大小设置为 size。此方法保留对宽度和高度现有绑定,因此任何触发绑定的更改将覆盖设置的值。

setSmooth(arg__1)#
参数:

arg__1 – bool

另见

smooth()

属性 smooth 的设置器。

setState(arg__1)#
参数:

arg__1 – str

另见

state()

属性 state 的设置器。

setTransformOrigin(arg__1)
参数:

arg__1TransformOrigin

属性 transformOrigin 的设置器。

setTransformOriginPoint(arg__1)
参数:

arg__1QPointF

setVisible(arg__1)
参数:

arg__1 – bool

另见

isVisible()

属性 visible 的设置器。

setWidth(arg__1)
参数:

arg__1 – float

另见

width()

属性 width 的设置器。

setX(arg__1)
参数:

arg__1 – float

另见

x()

属性 x 的设置器。

setY(arg__1)
参数:

arg__1 – float

另见

y()

属性 y 的设置器。

setZ(arg__1)
参数:

arg__1 – float

另见

z()

属性 z 的设置器。

size()
返回类型:

QSizeF

返回项的大小。

smooth()
返回类型:

bool

另见

setSmooth()

属性 smooth 的获取器。

smoothChanged(arg__1)
参数:

arg__1 – bool

属性 smooth 的通知信号。

stackAfter(arg__1)#
参数:

arg__1QQuickItem

将指定的 sibling 素件移动到子元素列表中该元素之后的索引位置。子元素的顺序会影响视觉堆叠顺序和标签页焦点导航顺序。

假设两个元素的 Z 值相同,这将导致 sibling 在此元素下方渲染。

如果两个元素都将 activeFocusOnTab 设置为 true,这将也会导致标签页焦点顺序的改变,使得 sibling 在此元素之前获得焦点。

给定的 sibling 必须是该元素的兄弟;也就是说,它们必须有相同的直接 parent

stackBefore(arg__1)#
参数:

arg__1QQuickItem

将指定的 sibling 素件移动到子元素列表中该元素之前的索引位置。子元素的顺序会影响视觉堆叠顺序和标签页焦点导航顺序。

假设两个元素的 Z 值相同,这将导致 sibling 在此元素上方渲染。

如果两个元素都将 activeFocusOnTab 设置为 true,这将也会导致标签页焦点顺序的改变,使得 sibling 在此元素之后获得焦点。

给定的 sibling 必须是该元素的兄弟;也就是说,它们必须有相同的直接 parent

state()#
返回类型:

str

另见

setState()

属性 state 的获取器。

stateChanged(arg__1)#
参数:

arg__1 – str

属性 state 的通知信号。

textureProvider()#
返回类型:

QSGTextureProvider

返回项的纹理提供程序。默认实现返回 None

此函数只能在渲染线程上调用。

touchEvent(event)#
参数:

事件QTouchEvent

此事件处理器可以被子类重写以接收项目的触摸事件。事件信息通过参数event提供。

默认情况下,事件被接受,因此如果重新实现此函数,不必显式接受事件。如果不接受事件,调用event->ignore()

touchUngrabEvent()#

此事件处理器可以被重写在子类中,以便在项目上发生触摸未抓取事件时接收通知。

transformOrigin()#
返回类型:

变换原点

transformOrigin 属性的获取器。

transformOriginChanged(arg__1)#
参数:

arg__1TransformOrigin

transformOrigin 属性的通知信号。

transformOriginPoint()#
返回类型:

QPointF

transformOriginPoint 属性的获取器。

ungrabMouse()#

使用 QPointerEvent::setExclusiveGrabber()。

在调用grabMouse()后释放鼠标抓取。

请注意,此函数仅在项目希望停止处理进一步事件时调用。在释放或取消事件之后不需要调用此函数,因为无论如何都将接收不到未来的事件。在调用此函数后不会传递任何移动或释放事件。

ungrabTouchPoints()#

使用QEventPoint::setExclusiveGrabber()代替。取消抓取此项拥有的触摸点。

unsetCursor()#

清除此项目的光标形状。

update()#

为此项目安排对 updatePaintNode() 的调用。

如果项目在QQuickWindow 中显示,将始终发生对 updatePaintNode() 的调用。

只有指定了 ItemHasContents 的项目才能调用 QQuickItem::update() 方法。

updateInputMethod([queries=Qt.ImQueryInput])#
参数:

queries – 结合了 InputMethodQuery 的查询

当需要时,通知输入法更新查询值。queries 表示已更改的属性。

updatePaintNode(arg__1, arg__2)#
参数:
  • arg__1QSGNode

  • arg__2UpdatePaintNodeData

返回类型:

QSGNode

在同步项目状态与场景图状态的时间点上,在渲染线程上调用。

当用户已在项目上设置了 ItemHasContents 标志时,此函数作为对 update() 的调用结果。

此函数应返回此项目的场景图子树的根。大多数实现将返回包含此项目可视表示的单个 QSGGeometryNode。`oldNode` 是上一次调用此函数时返回的节点。

QSGNode *MyItem::updatePaintNode(QSGNode *node, UpdatePaintNodeData *)
{
    QSGSimpleRectNode *n = static_cast<QSGSimpleRectNode *>(node);
    if (!n) {
        n = new QSGSimpleRectNode();
        n->setColor(Qt::red);
    }
    n->setRect(boundingRect());
    return n;
}

当此函数执行时,主线程将被阻塞,因此可以安全地读取 QQuickItem 实例和其他主线程中的对象。

如果没有 QQuickItem::updatePaintNode() 的调用导致实际场景图更改,例如 markDirty() 或添加和删除节点,那么底层实现可能会决定不再重新渲染场景,因为视觉结果相同。

警告

图形操作与场景图交互必须在渲染线程上独家发生,尤其是在调用 QQuickItem::updatePaintNode() 时。最好的经验法则是仅在 QQuickItem::updatePaintNode() 函数中仅使用带有 "QSG" 前缀的类。

警告

此函数在渲染线程上调用。这意味着任何创建的 QObjects 或线程局部存储都将与渲染线程具有亲和力,因此在函数中执行除渲染之外的操作时请格外小心。对于信号,这些信号将在渲染线程上发出,因此通常将通过排队连接传送。

注意

应仅在场景图的渲染线程上使用所有带有QSG前缀的类。有关更多信息,请参阅《场景图和渲染》。

updatePolish()#

此函数应执行为此项所需的任何布局。

当调用 polish() 时,场景图为此项调度一个抛光事件。当场景图准备好渲染此项时,它通过调用 updatePolish() 来执行任何所需的项目布局,然后再渲染下一帧。

viewportItem()#
返回类型:

QQuickItem

如果设置了 ItemObservesViewport 标志,则返回最近的具有 ItemIsViewport 标志的父元素。如果没有设置此标志,或找不到其他视口元素,则返回窗口的内容项。

如果没有任何视口元素并且此项目不在窗口中显示,则返回 None

另见

clipRect()

visibleChanged()#

属性 visible 的通知信号。

visibleChildrenChanged()#
wheelEvent(event)#
参数:

eventQWheelEvent

可以在这个子类中重新实现此事件处理程序,以接收项目的滚轮事件。事件信息由 `event` 参数提供。

默认情况下,事件被接受,因此如果重新实现此函数,不必显式接受事件。如果不接受事件,调用event->ignore()

宽度()#
返回类型:

float

另见

setWidth()

属性 width 的获取器。

widthChanged()#

属性 width 的变化通知信号。

widthValid()#
返回类型:

bool

返回宽度属性是否被显式设置。

窗口()#
返回类型:

QQuickWindow

返回渲染此元素的窗口。

元素在将其分配到场景之前没有窗口。当元素进入或从场景中移除时,windowChanged() 信号发出通知。

windowChanged(窗口)#
参数:

窗口QQuickWindow

当元素窗口 window 发生变化时,发出此信号。

x()#
返回类型:

float

另见

setX()

属性 x 的获取器。

xChanged()#

属性 x 的变化通知信号。

y()#
返回类型:

float

另见

setY()

属性 y 的获取器。

yChanged()#

属性 y 的变化通知信号。

z()#
返回类型:

float

另见

setZ()

属性 z 的获取器。

zChanged()#

属性 zᅟ 的通知信号。