PySide6.QtQuick.QQuickItem

class QQuickItem

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

PySide6.QtQuick.QQuickItem 的继承图

继承自: QQuickRhiItem, QQuickPaintedItem, QQuickFramebufferObject

概要

属性

方法

虚拟方法

插槽

信号

注意

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

详细描述

Qt Quick 中的所有可视项都继承自 QQuickItem。尽管 QQuickItem 实例没有可视外观,但它定义了所有可视项共有的属性,例如 x 和 y 位置、宽度和高度、锚定 和按键处理支持。

你可以子类化 QQuickItem 来提供你自己的自定义视觉项,这些项继承了这些特性。

自定义场景图项目

所有可视的QML项目都是使用场景图渲染的,其默认实现是一个低级别、高性能的渲染堆栈,紧密绑定到加速图形API,如OpenGL、Vulkan、Metal或Direct 3D。QQuickItem的子类可以通过设置ItemHasContents标志并重新实现updatePaintNode()函数,将自定义内容添加到场景图中。

警告

至关重要的是,图形操作和与场景图的交互必须仅在渲染线程上进行,主要是在updatePaintNode()调用期间。最好的经验法则是仅在updatePaintNode()函数内部使用带有“QSG”前缀的类。

注意

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

图形资源处理

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

将图形资源存储在节点树之外的实现,例如实现textureProvider()的项目,需要根据项目在QML中的使用方式来正确清理这些资源。需要处理的情况包括:

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

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

  • 项目被删除;当项目的析构函数运行时,它应该删除它所拥有的任何图形资源。如果上述两个条件均未满足,项目将成为窗口的一部分,并且可以使用scheduleRenderJob()来清理它们。如果实现忽略了releaseResources()的调用,项目在许多情况下将不再能够访问QQuickWindow,因此无法安排清理。

当使用scheduleRenderJob()安排图形资源清理时,应使用BeforeSynchronizingStageAfterSynchronizingStagesynchronization stage是场景图因QML树的变化而改变的阶段。如果在其他时间安排清理,可能会导致场景图的其他部分引用新删除的对象,因为这些部分尚未更新。

注意

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

自定义QPainter项目

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

警告

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

行为动画

如果你的项目使用Behavior类型来定义属性变化的动画,当你需要从C++修改这些属性时,你应该始终使用QObject::setProperty()、QQmlProperty()或QMetaProperty::write()。这确保了QML引擎知道属性变化。否则,引擎将无法执行你请求的动画。请注意,这些函数会带来轻微的性能损失。更多详情,请参阅从C++访问QML对象类型的成员。

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

项目被添加到场景中或从场景中移除。渲染场景的QQuickWindowItemChangeData::window中指定。当项目从场景中移除时,窗口参数为空。

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时,属性可以直接使用,否则通过访问器函数使用。

property activeFocusᅟ: bool

此只读属性指示项目是否具有活动焦点。

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

通常,通过在项目及其包含的FocusScope对象上设置focus来获得activeFocus。在以下示例中,inputfocusScope对象将具有active focus,而根矩形对象则不会。

另请参阅

focus Qt Quick 中的键盘焦点

Access functions:
property activeFocusOnTabᅟ: bool

此属性表示项目是否希望在标签焦点链中。默认情况下,此属性设置为false

注意

{QStyleHints::tabFocusBehavior}{tabFocusBehavior} 可以进一步将焦点限制为仅特定类型的控件,例如仅文本或列表控件。在macOS上就是这种情况,根据系统设置,焦点可能会限制在特定控件上。

另请参阅

focusPolicy

Access functions:
property antialiasingᅟ: bool

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

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

默认值为 false,但可能被派生元素覆盖。

Access functions:
property baselineOffsetᅟ: float

指定项目基线在局部坐标中的位置。

Text 项目的基线是文本所在的假想线。包含文本的控件通常将其基线设置为文本的基线。

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

Access functions:
property childrenRectᅟ: 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
    }
}
Access functions:
property clipᅟ: bool

此属性表示是否启用了裁剪。默认的裁剪值为false

如果启用了裁剪,一个项目将裁剪其自身的绘制以及其子项的绘制,以限制在其边界矩形内。如果在项目的绘制操作期间设置了裁剪,请记得重新设置以防止裁剪场景的其余部分。

注意

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

注意

为了QML,将clip设置为true也会设置ItemIsViewport标志,这有时可以作为一种优化:具有ItemObservesViewport标志的子项可能会放弃创建位于视口之外的场景图节点。但ItemIsViewport标志也可以独立设置。

Access functions:
property containmentMaskᅟ: QObject

此属性包含一个可选的掩码,用于contains()方法,主要用于对每个QPointerEvent进行命中测试。

默认情况下,contains() 将返回 true 对于项目边界框内的任何点。但任何 QQuickItem ,或任何实现以下形式函数的 QObject

Q_INVOKABLE bool contains(const QPointF &point) const;

可以用作掩码,将命中测试推迟到该对象。

注意

contains() 在事件传递过程中被频繁调用。将命中测试推迟到另一个对象会稍微减慢速度。如果该对象的 contains() 方法效率不高,containmentMask() 可能会导致性能问题。如果你实现了一个自定义的 QQuickItem 子类,你可以选择重写 contains()

另请参阅

contains()

Access functions:
property enabledᅟ: bool

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

直接设置此属性会影响子项的enabled值。当设置为false时,所有子项的enabled值也会变为false。当设置为true时,子项的enabled值将恢复为true,除非它们已被明确设置为false

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

注意

悬停事件通过setAcceptHoverEvents()单独启用。因此,即使此属性为false,禁用的项目也可以继续接收悬停事件。这使得即使在交互项目被禁用时,也可以显示信息反馈(例如ToolTip)。对于作为项目子项添加的任何HoverHandlers也是如此。然而,HoverHandler可以显式地禁用,或者例如绑定到项目的enabled状态。

另请参阅

visible

Access functions:
property focusᅟ: bool

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

在以下示例中,当scope获得活动焦点时,input将被赋予活动焦点:

为了这个属性的目的,整个场景被假定为像一个焦点范围一样运作。在实际层面上,这意味着以下QML将在启动时给予input活动焦点。

另请参阅

activeFocus Qt Quick中的键盘焦点

Access functions:
property focusPolicyᅟ: Qt.FocusPolicy

此属性决定了项目接受焦点的方式。

Access functions:
property heightᅟ: float

此属性保存此项的高度。

Access functions:
property implicitHeightᅟ: float
Access functions:
property implicitWidthᅟ: float
Access functions:
property opacityᅟ: float

此属性表示项目的不透明度。不透明度指定为介于0.0(完全透明)和1.0(完全不透明)之间的数字。默认值为1.0。

当设置此属性时,指定的不透明度也会单独应用于子项。在某些情况下,这可能会产生意想不到的效果。例如,在下面的第二组矩形中,红色矩形指定了0.5的不透明度,这影响了其蓝色子矩形的不透明度,即使子矩形没有指定不透明度。

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

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

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

另请参阅

visible

Access functions:
property parentᅟ: QQuickItem

此属性保存项目的视觉父级。

注意

视觉父级的概念与QObject父级的概念不同。一个项目的视觉父级不一定与其对象父级相同。有关更多详细信息,请参阅Qt Quick中的视觉父级概念

注意

此属性的通知信号在视觉父项的销毁过程中发出。C++ 信号处理程序不能假设视觉父项层次结构中的项仍然完全构造。使用 qobject_cast 来验证父项层次结构中的项可以安全地用作预期类型。

Access functions:
property rotationᅟ: float

此属性表示项目围绕其transformOrigin顺时针旋转的角度。

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

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

另请参阅

Transform Rotation

Access functions:
property scaleᅟ: float

此属性保存此项目的比例因子。

小于1.0的比例会使项目以较小的尺寸呈现,而大于1.0的比例会使项目以较大的尺寸呈现。负比例会使项目在呈现时镜像。

默认值为1.0。

缩放是从transformOrigin应用的。

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

另请参阅

Transform Scale

Access functions:
property smoothᅟ: bool

此属性指定项目是否被平滑处理。

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

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

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

Access functions:
property stateᅟ: str

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

如果项目处于默认状态,即未设置明确状态,则此属性包含一个空字符串。同样,您可以通过将此属性设置为空字符串将项目返回到其默认状态。

另请参阅

Qt Quick 状态

Access functions:
property transformOriginᅟ: QQuickItem.TransformOrigin

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

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

../../_images/declarative-transformorigin.png
Access functions:
property transformOriginPointᅟ: QPointF
Access functions:
property visibleᅟ: bool

此属性表示项目是否可见。默认情况下,这是true。

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

(由于这种流动行为,如果属性绑定应该仅响应显式的属性更改,使用visible属性可能不会产生预期的效果。在这种情况下,可能更适合使用opacity属性。)

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

注意

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

注意

此属性的通知信号在视觉父项的销毁过程中发出。C++ 信号处理程序不能假设视觉父项层次结构中的项仍然完全构造。使用 qobject_cast 来验证父项层次结构中的项可以安全地用作预期类型。

另请参阅

opacity enabled

Access functions:
property widthᅟ: float

此属性保存此项目的宽度。

Access functions:
property xᅟ: float

定义项目相对于其父级的x位置。

Access functions:
property yᅟ: float

定义项目相对于其父级的y位置。

Access functions:
property 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 以下:

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

父级QQuickItem

使用给定的parent构造一个QQuickItem

parent 将同时用作 visual parent 和 QObject 父对象。

acceptHoverEvents()
Return type:

布尔

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

默认值为 false。

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

另请参阅

setAcceptHoverEvents()

acceptTouchEvents()
Return type:

布尔

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

默认值为false

如果这是false,那么该项目将不会通过touchEvent()函数接收任何触摸事件。

另请参阅

setAcceptTouchEvents()

acceptedMouseButtons()
Return type:

MouseButton 的组合

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

默认值为 Qt::NoButton;也就是说,不接受任何鼠标按钮。

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

activeFocusChanged(arg__1)
Parameters:

arg__1 – 布尔值

属性 activeFocusᅟ 的通知信号。

activeFocusOnTab()
Return type:

布尔

另请参阅

setActiveFocusOnTab()

属性 activeFocusOnTabᅟ 的获取器。

activeFocusOnTabChanged(arg__1)
Parameters:

arg__1 – 布尔值

属性 activeFocusOnTabᅟ 的通知信号。

antialiasing()
Return type:

布尔

另请参阅

setAntialiasing()

属性 antialiasingᅟ 的获取器。

antialiasingChanged(arg__1)
Parameters:

arg__1 – 布尔值

属性 antialiasingᅟ 的通知信号。

baselineOffset()
Return type:

浮点数

另请参阅

setBaselineOffset()

属性 baselineOffsetᅟ 的获取器。

baselineOffsetChanged(arg__1)
Parameters:

arg__1 – 浮点数

属性 baselineOffsetᅟ 的通知信号。

boundingRect()
Return type:

QRectF

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

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

  • y – 浮点数

Return type:

QQuickItem

返回在此项目的坐标系中位于点 (x, y) 处的第一个可见子项目。

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

childItems()
Return type:

QQuickItem的列表

返回此项目的子项。

childMouseEventFilter(item, event)
Parameters:
Return type:

布尔

重新实现此方法以过滤此项目的子项接收到的指针事件。

只有在filtersChildMouseEvents()true时,才会调用此方法。

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

注意

尽管名称如此,此函数在传递到所有子对象期间过滤所有QPointerEvent实例(通常是鼠标、触摸和平板事件)。在子类中重写此函数时,我们建议仅使用QPointerEvent中的访问器编写通用事件处理代码。或者,您可以根据event->type()和/或event->device()->type()进行切换,以不同方式处理不同的事件类型。

注意

过滤只是处理手势歧义时共享责任的一种方式(例如在按下时,你不知道用户是点击还是拖动)。另一种方式是在按下时调用QPointerEvent::addPassiveGrabber(),以便非独占地监视QEventPoint的进展。无论哪种情况,监视的项目或指针处理程序在明确手势符合其预期模式时,都可以稍后窃取独占抓取。

childrenChanged()
childrenRect()
Return type:

QRectF

属性 childrenRectᅟ 的获取器。

childrenRectChanged(arg__1)
Parameters:

arg__1QRectF

属性 childrenRectᅟ 的通知信号。

clip()
Return type:

布尔

另请参阅

setClip()

属性 clipᅟ 的获取器。

clipChanged(arg__1)
Parameters:

arg__1 – 布尔值

属性 clipᅟ 的通知信号。

clipRect()
Return type:

QRectF

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

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

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

另请参阅

boundingRect()

containmentMask()
Return type:

QObject

另请参阅

setContainmentMask()

属性 containmentMaskᅟ 的获取器。

containmentMaskChanged()

属性 containmentMaskᅟ 的通知信号。

contains(point)
Parameters:

QPointF

Return type:

布尔

如果此项包含位于本地坐标中的point,则返回true;否则返回false

此函数可以被重写,以便处理具有自定义形状的项目中的点碰撞。默认实现检查点是否在containmentMask()内(如果已设置),否则检查点是否在边界框内。

注意

此方法用于在事件传递期间对每个QEventPoint进行命中测试,因此实现应尽可能轻量。

cursor()
Return type:

QCursor

返回此项目的光标形状。

当鼠标光标悬停在此项目上时,它将呈现此形状,除非设置了覆盖光标。请参阅预定义光标对象列表以获取一系列有用的形状。

如果没有设置光标形状,这将返回一个具有Qt::ArrowCursor形状的光标,但如果重叠的项目具有有效的光标,则可能会显示另一个光标形状。

另请参阅

setCursor() unsetCursor()

dragEnterEvent(event)
Parameters:

事件QDragEnterEvent

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

只有在为此项目设置了ItemAcceptsDrops标志时,才会提供拖放事件。

事件默认被接受,因此如果您重新实现此函数,则不需要显式接受事件。如果您不接受事件,请调用event->ignore()

另请参阅

Drag Drag and Drop

dragLeaveEvent(event)
Parameters:

事件QDragLeaveEvent

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

只有在为此项目设置了ItemAcceptsDrops标志时,才会提供拖放事件。

事件默认被接受,因此如果您重新实现此函数,则不需要显式接受事件。如果您不接受事件,请调用event->ignore()

另请参阅

Drag Drag and Drop

dragMoveEvent(event)
Parameters:

事件QDragMoveEvent

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

只有在为此项目设置了ItemAcceptsDrops标志时,才会提供拖放事件。

事件默认被接受,因此如果您重新实现此函数,则不需要显式接受事件。如果您不接受事件,请调用event->ignore()

另请参阅

Drag Drag and Drop

dropEvent(event)
Parameters:

事件QDropEvent

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

只有在为此项目设置了ItemAcceptsDrops标志时,才会提供拖放事件。

事件默认被接受,因此如果您重新实现此函数,则不需要显式接受事件。如果您不接受事件,请调用event->ignore()

另请参阅

Drag Drag and Drop

dumpItemTree()

递归地转储有关从此项目开始的项目视觉树的一些详细信息。

注意

QObject::dumpObjectTree() 会转储一个类似的树;但是,正如在Qt Quick中的视觉父对象概念中所解释的,一个项目的QObject::parent()有时与其parentItem()不同。你可以转储这两棵树来查看差异。

注意

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

enabledChanged()

属性 enabledᅟ 的通知信号。

ensurePolished()

调用 updatePolish()

这对于诸如布局(或定位器)之类的项目可能很有用,这些项目会延迟计算它们的implicitWidthimplicitHeight,直到它们收到PolishEvent。

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

另请参阅

updatePolish() polish()

filtersChildMouseEvents()
Return type:

布尔

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

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

flags()
Return type:

Flag的组合

返回此项目的项目标志。

另请参阅

setFlags() setFlag()

focusChanged(arg__1)
Parameters:

arg__1 – 布尔值

属性 focusᅟ 的通知信号。

focusInEvent(event)
Parameters:

事件QFocusEvent

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

事件默认被接受,因此如果您重新实现此函数,则不需要显式接受事件。如果您不接受事件,请调用event->ignore()

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

focusOutEvent(event)
Parameters:

事件QFocusEvent

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

事件默认被接受,因此如果您重新实现此函数,则不需要显式接受事件。如果您不接受事件,请调用event->ignore()

focusPolicy()
Return type:

FocusPolicy

另请参阅

setFocusPolicy()

属性 focusPolicyᅟ 的获取器。

focusPolicyChanged(arg__1)
Parameters:

arg__1FocusPolicy

属性 focusPolicyᅟ 的通知信号。

forceActiveFocus()

强制激活项目的焦点。

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

焦点变化的原因将是 Qt::OtherFocusReason。使用重载方法来指定焦点原因,以便更好地处理焦点变化。

另请参阅

activeFocus

forceActiveFocus(reason)
Parameters:

原因FocusReason

这是一个重载函数。

强制将焦点设置在具有给定reason的项目上。

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

另请参阅

activeFocus FocusReason

geometryChange(newGeometry, oldGeometry)
Parameters:

此函数用于处理此项目从oldGeometrynewGeometry的几何变化。如果两个几何相同,则不执行任何操作。

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

grabMouse()

使用 QPointerEvent::setExclusiveGrabber()。

获取鼠标输入。

该项目将接收所有鼠标事件,直到调用ungrabMouse()。通常不应调用此函数,因为接受例如鼠标按下事件确保后续事件将传递到该项目。如果一个项目想要从当前接收者接管鼠标事件,它需要调用此函数。

警告

此函数应谨慎使用。

grabToImage([targetSize=QSize()])
Parameters:

targetSizeQSize

Return type:

QSharedPointer

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

抓取是异步进行的,当抓取完成时,会发出信号 ready()

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

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

注意

此函数将项目渲染到离屏表面,并将该表面从GPU的内存复制到CPU的内存,这可能会非常耗费资源。对于“实时”预览,请使用layersShaderEffectSource

另请参阅

grabWindow()

grabToImage(callback[, targetSize=QSize()])
Parameters:
Return type:

布尔

grabTouchPoints(ids)
Parameters:

ids – .整数列表

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

这些触摸点将由项目拥有,直到它们被释放。或者,抓取可以被像Flickable这样的过滤项目偷走。使用setKeepTouchGrab()来防止抓取被偷走。

hasActiveFocus()
Return type:

布尔

属性 activeFocusᅟ 的获取器。

hasFocus()
Return type:

布尔

属性 focusᅟ 的获取器。

height()
Return type:

浮点数

另请参阅

setHeight()

属性 heightᅟ 的获取器。

heightChanged()

属性 heightᅟ 的通知信号。

heightValid()
Return type:

布尔

返回是否已明确设置高度属性。

hoverEnterEvent(event)
Parameters:

事件QHoverEvent

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

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

事件默认被接受,因此如果您重新实现此函数,则不需要显式接受事件。如果您不接受事件,请调用event->ignore()

hoverLeaveEvent(event)
Parameters:

事件QHoverEvent

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

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

事件默认被接受,因此如果您重新实现此函数,则不需要显式接受事件。如果您不接受事件,请调用event->ignore()

hoverMoveEvent(event)
Parameters:

事件QHoverEvent

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

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

事件默认被接受,因此如果您重新实现此函数,则不需要显式接受事件。如果您不接受事件,请调用event->ignore()

implicitHeight()
Return type:

浮点数

另请参阅

setImplicitHeight()

属性 implicitHeightᅟ 的获取器。

implicitHeightChanged()

属性 implicitHeightᅟ 的通知信号。

implicitWidth()
Return type:

浮点数

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

另请参阅

setImplicitWidth()

属性 implicitWidthᅟ 的获取器。

implicitWidthChanged()

属性 implicitWidthᅟ 的通知信号。

inputMethodEvent(event)
Parameters:

事件QInputMethodEvent

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

事件默认被接受,因此如果您重新实现此函数,则不需要显式接受事件。如果您不接受事件,请调用event->ignore()

inputMethodQuery(query)
Parameters:

查询InputMethodQuery

Return type:

对象

此方法仅适用于输入项。

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

另请参阅

inputMethodQuery()

isAncestorOf(child)
Parameters:

子项QQuickItem

Return type:

布尔

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

另请参阅

parentItem()

isComponentComplete()
Return type:

布尔

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

通常希望延迟某些处理,直到组件完成。

另请参阅

componentComplete()

isEnabled()
Return type:

布尔

属性 enabledᅟ 的获取器。

isFocusScope()
Return type:

布尔

如果此项目是焦点范围,则返回 true,否则返回 false。

isTextureProvider()
Return type:

布尔

如果此项目是纹理提供者,则返回true。默认实现返回false。

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

isUnderMouse()
Return type:

布尔

isVisible()
Return type:

布尔

属性 visibleᅟ 的获取器。

itemTransform(arg__1)
Parameters:

arg__1QQuickItem

Return type:

PyTuple

keepMouseGrab()
Return type:

布尔

返回鼠标输入是否应仅保留在此项目上。

另请参阅

setKeepMouseGrab() ignore()

keepTouchGrab()
Return type:

布尔

返回此项目抓取的触摸点是否应独占保留在此项目上。

另请参阅

setKeepTouchGrab() keepMouseGrab() ignore()

keyPressEvent(event)
Parameters:

事件QKeyEvent

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

事件默认被接受,因此如果您重新实现此函数,则不需要显式接受事件。如果您不接受事件,请调用event->ignore()

keyReleaseEvent(event)
Parameters:

事件QKeyEvent

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

事件默认被接受,因此如果您重新实现此函数,则不需要显式接受事件。如果您不接受事件,请调用event->ignore()

mapFromGlobal(point)
Parameters:

QPointF

Return type:

QPointF

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

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

如果项目属于不同的场景,映射包括两个场景的相对位置。

例如,这可能有助于向Qt Quick组件添加弹出窗口。

注意

窗口定位由窗口管理器完成,此值仅被视为提示。因此,最终的窗口位置可能与预期不同。

注意

如果此项位于子场景中,例如映射到3D模型对象上,UV映射将包含在此转换中,因此只要point实际上在此项的边界内,它就会从屏幕坐标转换为此项的坐标。其他映射函数尚未以这种方式工作。

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

  • y – 浮点数

Return type:

QPointF

mapFromItem(item, point)
Parameters:
Return type:

QPointF

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

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

如果项目属于不同的场景,映射包括两个场景的相对位置。

如果 itemNone,这将从场景的坐标系映射 point

mapFromItem(item, rect)
Parameters:
Return type:

QRectF

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

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

如果项目属于不同的场景,映射包括两个场景的相对位置。

如果 itemNone,这将从场景的坐标系映射 point

mapFromItem(item, x, y)
Parameters:
  • 项目QQuickItem

  • x – 浮点数

  • y – 浮点数

Return type:

QPointF

mapFromItem(item, x, y, width, height)
Parameters:
  • 项目QQuickItem

  • x – 浮点数

  • y – 浮点数

  • width – 浮点数

  • height – 浮点数

Return type:

QRectF

mapFromScene(point)
Parameters:

QPointF

Return type:

QPointF

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

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

如果项目属于不同的场景,映射包括两个场景的相对位置。

mapRectFromItem(item, rect)
Parameters:
Return type:

QRectF

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

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

如果项目属于不同的场景,映射包括两个场景的相对位置。

如果 itemNone,这将从场景的坐标系映射 rect

mapRectFromScene(rect)
Parameters:

矩形QRectF

Return type:

QRectF

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

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

如果项目属于不同的场景,映射包括两个场景的相对位置。

mapRectToItem(item, rect)
Parameters:
Return type:

QRectF

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

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

如果项目属于不同的场景,映射包括两个场景的相对位置。

如果 itemNone,这将 rect 映射到场景的坐标系中。

mapRectToScene(rect)
Parameters:

矩形QRectF

Return type:

QRectF

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

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

如果项目属于不同的场景,映射包括两个场景的相对位置。

mapToGlobal(point)
Parameters:

QPointF

Return type:

QPointF

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

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

如果项目属于不同的场景,映射包括两个场景的相对位置。

例如,这可能有助于向Qt Quick组件添加弹出窗口。

注意

窗口定位由窗口管理器完成,此值仅被视为提示。因此,最终的窗口位置可能与预期不同。

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

  • y – 浮点数

Return type:

QPointF

mapToItem(item, point)
Parameters:
Return type:

QPointF

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

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

如果项目属于不同的场景,映射包括两个场景的相对位置。

如果 itemNone,这将 point 映射到场景的坐标系。

mapToItem(item, rect)
Parameters:
Return type:

QRectF

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

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

如果项目属于不同的场景,映射包括两个场景的相对位置。

如果 itemNone,这将 point 映射到场景的坐标系。

mapToItem(item, x, y)
Parameters:
  • 项目QQuickItem

  • x – 浮点数

  • y – 浮点数

Return type:

QPointF

mapToItem(item, x, y, width, height)
Parameters:
  • 项目QQuickItem

  • x – 浮点数

  • y – 浮点数

  • width – 浮点数

  • height – 浮点数

Return type:

QRectF

mapToScene(point)
Parameters:

QPointF

Return type:

QPointF

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

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

如果项目属于不同的场景,映射包括两个场景的相对位置。

mouseDoubleClickEvent(event)
Parameters:

事件QMouseEvent

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

事件默认被接受,因此如果您重新实现此函数,则不需要显式接受事件。如果您不接受事件,请调用event->ignore()

mouseMoveEvent(event)
Parameters:

事件QMouseEvent

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

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

事件默认被接受,因此如果您重新实现此函数,则不需要显式接受事件。如果您不接受事件,请调用event->ignore()

mousePressEvent(event)
Parameters:

事件QMouseEvent

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

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

事件默认被接受,因此如果您重新实现此函数,则不需要显式接受事件。如果您不接受事件,请调用event->ignore()

mouseReleaseEvent(event)
Parameters:

事件QMouseEvent

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

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

事件默认被接受,因此如果您重新实现此函数,则不需要显式接受事件。如果您不接受事件,请调用event->ignore()

mouseUngrabEvent()

此事件处理程序可以在子类中重新实现,以便在此项目上发生鼠标取消抓取事件时收到通知。

nextItemInFocusChain([forward=true])
Parameters:

forward – 布尔值

Return type:

QQuickItem

返回焦点链中与此项目相邻的项目。如果forwardtrue,或者未提供,则是向前方向的下一个项目。如果forwardfalse,则是向后方向的下一个项目。

opacity()
Return type:

浮点数

另请参阅

setOpacity()

属性 opacityᅟ 的获取器。

opacityChanged()

属性 opacityᅟ 的通知信号。

paletteChanged()
paletteCreated()
parentChanged(arg__1)
Parameters:

arg__1QQuickItem

属性 parentᅟ 的通知信号。

parentItem()
Return type:

QQuickItem

另请参阅

setParentItem()

属性 parentᅟ 的获取器。

polish()

为此项目安排一个抛光事件。

当场景图处理请求时,它将在此项目上调用updatePolish()

position()
Return type:

QPointF

releaseResources()

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

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

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

另请参阅

图形 资源 处理

resetAntialiasing()

属性 antialiasingᅟ 的重置功能。

resetHeight()

属性 heightᅟ 的重置功能。

resetWidth()

属性widthᅟ的重置功能。

rotation()
Return type:

浮点数

另请参阅

setRotation()

属性 rotationᅟ 的获取器。

rotationChanged()

属性 rotationᅟ 的通知信号。

scale()
Return type:

浮点数

另请参阅

setScale()

属性 scaleᅟ 的获取器。

scaleChanged()

属性 scaleᅟ 的通知信号。

scopedFocusItem()
Return type:

QQuickItem

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

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

setAcceptHoverEvents(enabled)
Parameters:

enabled – 布尔值

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

另请参阅

acceptHoverEvents()

setAcceptTouchEvents(accept)
Parameters:

accept – 布尔值

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

另请参阅

acceptTouchEvents()

setAcceptedMouseButtons(buttons)
Parameters:

buttonsMouseButton 的组合

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

注意

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

另请参阅

acceptedMouseButtons()

setActiveFocusOnTab(arg__1)
Parameters:

arg__1 – 布尔值

另请参阅

activeFocusOnTab()

属性 activeFocusOnTabᅟ 的设置器。

setAntialiasing(arg__1)
Parameters:

arg__1 – 布尔值

另请参阅

antialiasing()

属性 antialiasingᅟ 的设置器。

setBaselineOffset(arg__1)
Parameters:

arg__1 – 浮点数

另请参阅

baselineOffset()

属性 baselineOffsetᅟ 的设置器。

setClip(arg__1)
Parameters:

arg__1 – 布尔值

另请参阅

clip()

属性 clipᅟ 的设置器。

setContainmentMask(mask)
Parameters:

maskQObject

另请参阅

containmentMask()

属性 containmentMaskᅟ 的设置器。

setCursor(cursor)
Parameters:

光标QCursor

设置此项目的cursor形状。

另请参阅

cursor() unsetCursor()

setEnabled(arg__1)
Parameters:

arg__1 – 布尔值

另请参阅

isEnabled()

属性 enabledᅟ 的设置器。

setFiltersChildMouseEvents(filter)
Parameters:

filter – 布尔值

设置是否应通过此项目过滤针对此项目子项的指针事件。

如果 filter 为真,当子项触发指针事件时,将调用 childMouseEventFilter()

setFlag(flag[, enabled=true])
Parameters:
  • flagFlag

  • enabled – 布尔值

如果enabled为真,则为此项目启用指定的flag;如果enabled为假,则禁用该标志。

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

setFlags(flags)
Parameters:

flagsFlag 的组合

为此项目启用指定的flags

另请参阅

flags() setFlag()

setFocus(arg__1)
Parameters:

arg__1 – 布尔值

另请参阅

hasFocus()

属性 focusᅟ 的设置器。

setFocus(focus, reason)
Parameters:
setFocusPolicy(policy)
Parameters:

策略FocusPolicy

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

另请参阅

focusPolicy()

属性 focusPolicyᅟ 的设置器。

setHeight(arg__1)
Parameters:

arg__1 – 浮点数

另请参阅

height()

属性 heightᅟ 的设置器。

setImplicitHeight(arg__1)
Parameters:

arg__1 – 浮点数

另请参阅

implicitHeight()

属性 implicitHeightᅟ 的设置器。

setImplicitSize(arg__1, arg__2)
Parameters:
  • arg__1 – 浮点数

  • arg__2 – 浮点数

setImplicitWidth(arg__1)
Parameters:

arg__1 – 浮点数

另请参阅

implicitWidth()

属性 implicitWidthᅟ 的设置器。

setKeepMouseGrab(keep)
Parameters:

keep – 布尔值

设置鼠标输入是否应仅保留在此项目上。

这对于希望根据预定义手势抓取并保持鼠标交互的项目非常有用。例如,一个对水平鼠标移动感兴趣的项目可能会在超过某个阈值后将keepMouseGrab设置为true。一旦keepMouseGrab被设置为true,过滤项目将不会对鼠标事件做出反应。

如果 keep 为 false,过滤项可能会窃取抓取。例如,Flickable 可能会在检测到用户开始移动视口时尝试窃取鼠标抓取。

另请参阅

keepMouseGrab()

setKeepTouchGrab(keep)
Parameters:

keep – 布尔值

设置此项目抓取的触摸点是否应仅保留在此项目上。

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

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

setOpacity(arg__1)
Parameters:

arg__1 – 浮点数

另请参阅

opacity()

属性 opacityᅟ 的设置器。

setParentItem(parent)
Parameters:

父级QQuickItem

另请参阅

parentItem()

属性 parentᅟ 的设置器。

setPosition(arg__1)
Parameters:

arg__1QPointF

setRotation(arg__1)
Parameters:

arg__1 – 浮点数

另请参阅

rotation()

属性 rotationᅟ 的设置器。

setScale(arg__1)
Parameters:

arg__1 – 浮点数

另请参阅

scale()

属性 scaleᅟ 的设置器。

setSize(size)
Parameters:

大小QSizeF

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

另请参阅

size setWidth setHeight

setSmooth(arg__1)
Parameters:

arg__1 – 布尔值

另请参阅

smooth()

属性 smoothᅟ 的设置器。

setState(arg__1)
Parameters:

arg__1 – str

另请参阅

state()

属性 stateᅟ 的设置器。

setTransformOrigin(arg__1)
Parameters:

arg__1TransformOrigin

另请参阅

transformOrigin()

属性 transformOriginᅟ 的设置器。

setTransformOriginPoint(arg__1)
Parameters:

arg__1QPointF

setVisible(arg__1)
Parameters:

arg__1 – 布尔值

另请参阅

isVisible()

属性 visibleᅟ 的设置器。

setWidth(arg__1)
Parameters:

arg__1 – 浮点数

另请参阅

width()

属性 widthᅟ 的设置器。

setX(arg__1)
Parameters:

arg__1 – 浮点数

另请参阅

x()

属性 xᅟ 的设置器。

setY(arg__1)
Parameters:

arg__1 – 浮点数

另请参阅

y()

属性 yᅟ 的设置器。

setZ(arg__1)
Parameters:

arg__1 – 浮点数

另请参阅

z()

属性 zᅟ 的设置器。

size()
Return type:

QSizeF

返回项目的大小。

另请参阅

setSize width height

smooth()
Return type:

布尔

另请参阅

setSmooth()

属性 smoothᅟ 的获取器。

smoothChanged(arg__1)
Parameters:

arg__1 – 布尔值

属性 smoothᅟ 的通知信号。

stackAfter(sibling)
Parameters:

兄弟QQuickItem

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

假设两个项目的z值相同,这将导致sibling在此项目下方渲染。

如果两个项目都设置了activeFocusOnTabtrue,这也会导致标签焦点顺序发生变化,sibling会在此项目之前获得焦点。

给定的sibling必须是此项目的兄弟;也就是说,它们必须具有相同的直接parent

stackBefore(sibling)
Parameters:

兄弟QQuickItem

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

假设两个项目的z值相同,这将导致sibling在此项目上方渲染。

如果两个项目都设置了activeFocusOnTabtrue,这也会导致标签焦点顺序发生变化,sibling将在此项目之后获得焦点。

给定的sibling必须是此项目的兄弟;也就是说,它们必须具有相同的直接parent

state()
Return type:

字符串

另请参阅

setState()

属性 stateᅟ 的获取器。

stateChanged(arg__1)
Parameters:

arg__1 – str

属性 stateᅟ 的通知信号。

textureProvider()
Return type:

QSGTextureProvider

返回项目的纹理提供者。默认实现返回None

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

touchEvent(event)
Parameters:

事件QTouchEvent

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

事件默认被接受,因此如果您重新实现此函数,则不需要显式接受事件。如果您不接受事件,请调用event->ignore()

touchUngrabEvent()

此事件处理程序可以在子类中重新实现,以便在此项目上发生触摸取消抓取事件时收到通知。

transformOrigin()
Return type:

TransformOrigin

另请参阅

setTransformOrigin()

属性 transformOriginᅟ 的获取器。

transformOriginChanged(arg__1)
Parameters:

arg__1TransformOrigin

属性 transformOriginᅟ 的通知信号。

transformOriginPoint()
Return type:

QPointF

属性 transformOriginPointᅟ 的获取器。

ungrabMouse()

使用 QPointerEvent::setExclusiveGrabber()。

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

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

ungrabTouchPoints()

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

unsetCursor()

清除此项目的光标形状。

另请参阅

cursor() setCursor()

update()

为此项目安排调用updatePaintNode()

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

只有指定了ItemHasContents的项目才允许调用QQuickItem::update()。

updateInputMethod([queries=Qt.ImQueryInput])
Parameters:

查询InputMethodQuery 的组合

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

updatePaintNode(oldNode, updatePaintNodeData)
Parameters:
Return type:

QSGNode

在渲染线程上调用,以便在需要时将项目的状态与场景图同步。

如果用户在项目上设置了ItemHasContents标志,则函数会作为update()的结果被调用。

该函数应返回此项目的场景图子树的根。大多数实现将返回一个包含此项目视觉表示的QSGGeometryNodeoldNode是上次调用此函数时返回的节点。updatePaintNodeData提供了一个指向与此QQuickItem关联的QSGTransformNode的指针。

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()时,场景图会为此项目安排一个polish事件。当场景图准备好渲染此项目时,它会调用updatePolish()来在渲染下一帧之前执行所需的项目布局。

另请参阅

ensurePolished()

viewportItem()
Return type:

QQuickItem

如果设置了ItemObservesViewport标志,则返回具有ItemIsViewport标志的最近父项。如果未设置该标志,或未找到其他视口项,则返回窗口的contentItem。

仅当没有视口项且此项未在窗口中显示时返回None

另请参阅

clipRect()

visibleChanged()

属性 visibleᅟ 的通知信号。

visibleChildrenChanged()
wheelEvent(event)
Parameters:

事件QWheelEvent

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

事件默认被接受,因此如果您重新实现此函数,则不需要显式接受事件。如果您不接受事件,请调用event->ignore()

width()
Return type:

浮点数

另请参阅

setWidth()

属性 widthᅟ 的获取器。

widthChanged()

属性 widthᅟ 的通知信号。

widthValid()
Return type:

布尔

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

window()
Return type:

QQuickWindow

返回呈现此项目的窗口。

该项目在被分配到场景之前没有窗口。windowChanged()信号在项目进入场景和从场景中移除时都会提供通知。

windowChanged(window)
Parameters:

窗口QQuickWindow

当项目的window发生变化时,会发出此信号。

x()
Return type:

浮点数

另请参阅

setX()

属性 xᅟ 的获取器。

xChanged()

属性 xᅟ 的通知信号。

y()
Return type:

浮点数

另请参阅

setY()

属性 yᅟ 的获取器。

yChanged()

属性 yᅟ 的通知信号。

z()
Return type:

浮点数

另请参阅

setZ()

属性 zᅟ 的获取器。

zChanged()

属性 zᅟ 的通知信号。

class UpdatePaintNodeData

注意

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

详细描述

PySide6.QtQuick.QQuickItem.UpdatePaintNodeData.transformNode