PySide6.QtQuick.QQuickItem¶
- class QQuickItem¶
QQuickItem类提供了 Qt Quick 中所有视觉项的最基本功能。More_…继承自:
QQuickRhiItem,QQuickPaintedItem,QQuickFramebufferObject概要¶
属性¶
antialiasingᅟ- 指定项目是否进行抗锯齿处理smoothᅟ- 指定项目是否被平滑处理
方法¶
def
__init__()def
antialiasing()def
baselineOffset()def
childAt()def
childItems()def
childrenRect()def
clip()def
cursor()def
dumpItemTree()def
ensurePolished()def
flags()def
focusPolicy()def
grabMouse()def
grabToImage()def
hasActiveFocus()def
hasFocus()def
height()def
heightValid()def
implicitHeight()def
implicitWidth()def
isAncestorOf()def
isEnabled()def
isFocusScope()def
isUnderMouse()def
isVisible()def
itemTransform()def
keepMouseGrab()def
keepTouchGrab()def
mapFromGlobal()def
mapFromItem()def
mapFromScene()def
mapRectToItem()def
mapRectToScene()def
mapToGlobal()def
mapToItem()def
mapToScene()def
opacity()def
parentItem()def
polish()def
position()def
resetHeight()def
resetWidth()def
rotation()def
scale()def
setClip()def
setCursor()def
setEnabled()def
setFlag()def
setFlags()def
setFocus()def
setFocusPolicy()def
setHeight()def
setOpacity()def
setParentItem()def
setPosition()def
setRotation()def
setScale()def
setSize()def
setSmooth()def
setState()def
setVisible()def
setWidth()def
setX()def
setY()def
setZ()def
size()def
smooth()def
stackAfter()def
stackBefore()def
state()def
ungrabMouse()def
unsetCursor()def
viewportItem()def
width()def
widthValid()def
window()def
x()def
y()def
z()
虚拟方法¶
def
boundingRect()def
clipRect()def
contains()def
dragEnterEvent()def
dragLeaveEvent()def
dragMoveEvent()def
dropEvent()def
focusInEvent()def
focusOutEvent()def
geometryChange()def
hoverMoveEvent()def
keyPressEvent()def
mouseMoveEvent()def
touchEvent()def
updatePolish()def
wheelEvent()
插槽¶
def
update()
信号¶
def
clipChanged()def
enabledChanged()def
focusChanged()def
heightChanged()def
opacityChanged()def
paletteChanged()def
paletteCreated()def
parentChanged()def
scaleChanged()def
smoothChanged()def
stateChanged()def
visibleChanged()def
widthChanged()def
windowChanged()def
xChanged()def
yChanged()def
zChanged()
注意
本文档可能包含从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()隐藏时,或者当它关闭时。如果项目类实现了一个名为slot的invalidateSceneGraph(),则在GUI线程被阻塞时,将在渲染线程上调用此插槽。这相当于连接到sceneGraphInvalidated()。当通过OpenGL渲染时,调用此插槽时,此项目窗口的OpenGL上下文将被绑定。唯一的例外是如果本机OpenGL在Qt的控制之外被销毁,例如通过EGL_CONTEXT_LOST。该项目从场景中移除;如果一个项目从场景中移除,例如因为它的父项被设置为
null或另一个窗口中的项目,将在GUI线程上调用releaseResources()。scheduleRenderJob()应该用于安排渲染资源的清理。项目被删除;当项目的析构函数运行时,它应该删除它所拥有的任何图形资源。如果上述两个条件均未满足,项目将成为窗口的一部分,并且可以使用
scheduleRenderJob()来清理它们。如果实现忽略了releaseResources()的调用,项目在许多情况下将不再能够访问QQuickWindow,因此无法安排清理。
当使用
scheduleRenderJob()安排图形资源清理时,应使用BeforeSynchronizingStage或AfterSynchronizingStage。synchronization 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
项目被添加到场景中或从场景中移除。渲染场景的
QQuickWindow在ItemChangeData::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。在以下示例中,input和focusScope对象将具有active focus,而根矩形对象则不会。另请参阅
focusQt Quick 中的键盘焦点- Access functions:
- property activeFocusOnTabᅟ: bool¶
此属性表示项目是否希望在标签焦点链中。默认情况下,此属性设置为
false。注意
{QStyleHints::tabFocusBehavior}{tabFocusBehavior} 可以进一步将焦点限制为仅特定类型的控件,例如仅文本或列表控件。在macOS上就是这种情况,根据系统设置,焦点可能会限制在特定控件上。
另请参阅
- Access functions:
- property antialiasingᅟ: bool¶
此属性指定项目是否进行抗锯齿处理。
视觉元素使用此属性来决定项目是否应使用抗锯齿。在某些情况下,使用抗锯齿的项目需要更多内存,并且渲染速度可能较慢(有关更多详细信息,请参见抗锯齿)。
默认值为 false,但可能被派生元素覆盖。
- Access functions:
- property baselineOffsetᅟ: float¶
指定项目基线在局部坐标中的位置。
Text 项目的基线是文本所在的假想线。包含文本的控件通常将其基线设置为文本的基线。
对于非文本项目,使用默认的基线偏移量为0。
- Access functions:
此属性保存项目子项的集体位置和大小。
如果您需要访问项目子项的集合几何以正确调整项目的大小,此属性非常有用。
返回的几何体是相对于项目的局部坐标。例如:
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:
此属性包含一个可选的掩码,用于
contains()方法,主要用于对每个QPointerEvent进行命中测试。默认情况下,
contains()将返回true对于项目边界框内的任何点。但任何QQuickItem,或任何实现以下形式函数的 QObjectQ_INVOKABLE bool contains(const QPointF &point) const;
可以用作掩码,将命中测试推迟到该对象。
注意
contains()在事件传递过程中被频繁调用。将命中测试推迟到另一个对象会稍微减慢速度。如果该对象的contains()方法效率不高,containmentMask() 可能会导致性能问题。如果你实现了一个自定义的QQuickItem子类,你可以选择重写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活动焦点。另请参阅
activeFocusQt 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度(即不旋转)。
- Access functions:
- property scaleᅟ: float¶
此属性保存此项目的比例因子。
小于1.0的比例会使项目以较小的尺寸呈现,而大于1.0的比例会使项目以较大的尺寸呈现。负比例会使项目在呈现时镜像。
默认值为1.0。
缩放是从
transformOrigin应用的。- Access functions:
- property smoothᅟ: bool¶
此属性指定项目是否被平滑处理。
主要用于基于图像的项目中,以决定项目是否应使用平滑采样。平滑采样使用线性插值执行,而非平滑采样则使用最近邻执行。
在Qt Quick 2.0中,此属性对性能的影响最小。
默认情况下,此属性设置为
true。- Access functions:
- property stateᅟ: str¶
此属性保存项目当前状态的名称。
如果项目处于默认状态,即未设置明确状态,则此属性包含一个空字符串。同样,您可以通过将此属性设置为空字符串将项目返回到其默认状态。
另请参阅
- Access functions:
- property transformOriginᅟ: QQuickItem.TransformOrigin¶
此属性保存缩放和旋转变换所围绕的原点。
有九个变换原点可用,如下图所示。默认的变换原点是
Item.Center。
- Access functions:
- 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 来验证父项层次结构中的项可以安全地用作预期类型。
另请参阅
opacityenabled- Access functions:
- property widthᅟ: float¶
此属性保存此项目的宽度。
- Access functions:
- property xᅟ: float¶
定义项目相对于其父级的x位置。
- Access functions:
信号
xChanged()
- property yᅟ: float¶
定义项目相对于其父级的y位置。
- Access functions:
信号
yChanged()
- property zᅟ: float¶
设置同级项目的堆叠顺序。默认情况下,堆叠顺序为0。
具有较高堆叠值的项目会绘制在具有较低堆叠顺序的同级项目之上。具有相同堆叠值的项目按照它们出现的顺序从下往上绘制。具有负堆叠值的项目会绘制在其父级内容的下方。
以下示例展示了堆叠顺序的各种效果。
相同的
z- 后来的子元素在较早的子元素之上:
较高的
z在上面:
相同的
z- 子节点在父节点之上:
降低
z以下:- Access functions:
信号
zChanged()
- __init__([parent=None])¶
- Parameters:
父级 –
QQuickItem
使用给定的
parent构造一个QQuickItem。parent将同时用作visual parent和 QObject 父对象。- acceptHoverEvents()¶
- Return type:
布尔
返回此项目是否接受悬停事件。
默认值为 false。
如果这是false,那么该项目将不会通过
hoverEnterEvent()、hoverMoveEvent()和hoverLeaveEvent()函数接收任何悬停事件。- acceptTouchEvents()¶
- Return type:
布尔
返回此项目是否接受触摸事件。
默认值为
false。如果这是
false,那么该项目将不会通过touchEvent()函数接收任何触摸事件。- acceptedMouseButtons()¶
- Return type:
MouseButton的组合
返回此项目接受的鼠标按钮。
默认值为 Qt::NoButton;也就是说,不接受任何鼠标按钮。
如果一个项目不接受特定鼠标事件的鼠标按钮,鼠标事件将不会传递给该项目,而是会传递给项目层次结构中的下一个项目。
- activeFocusChanged(arg__1)¶
- Parameters:
arg__1 – 布尔值
属性
activeFocusᅟ的通知信号。- activeFocusOnTab()¶
- Return type:
布尔
属性
activeFocusOnTabᅟ的获取器。- activeFocusOnTabChanged(arg__1)¶
- Parameters:
arg__1 – 布尔值
属性
activeFocusOnTabᅟ的通知信号。- antialiasing()¶
- Return type:
布尔
另请参阅
属性
antialiasingᅟ的获取器。- antialiasingChanged(arg__1)¶
- Parameters:
arg__1 – 布尔值
属性
antialiasingᅟ的通知信号。- baselineOffset()¶
- Return type:
浮点数
另请参阅
属性
baselineOffsetᅟ的获取器。- baselineOffsetChanged(arg__1)¶
- Parameters:
arg__1 – 浮点数
属性
baselineOffsetᅟ的通知信号。返回项目在其自身坐标系中的范围:从
0, 0到width()和height()的矩形。- childAt(x, y)¶
- Parameters:
x – 浮点数
y – 浮点数
- Return type:
返回在此项目的坐标系中位于点 (
x,y) 处的第一个可见子项目。如果没有这样的项目,返回
None。- childItems()¶
- Return type:
QQuickItem的列表
返回此项目的子项。
- childMouseEventFilter(item, event)¶
- Parameters:
项目 –
QQuickItemevent –
QEvent
- Return type:
布尔
重新实现此方法以过滤此项目的子项接收到的指针事件。
只有在
filtersChildMouseEvents()为true时,才会调用此方法。如果指定的
event不应传递给指定的子item,则返回true,否则返回false。如果返回true,您还应接受或忽略event,以指示事件传播是否应停止或继续。然而,event将始终发送到父链中的所有childMouseEventFilters。注意
尽管名称如此,此函数在传递到所有子对象期间过滤所有QPointerEvent实例(通常是鼠标、触摸和平板事件)。在子类中重写此函数时,我们建议仅使用QPointerEvent中的访问器编写通用事件处理代码。或者,您可以根据
event->type()和/或event->device()->type()进行切换,以不同方式处理不同的事件类型。注意
过滤只是处理手势歧义时共享责任的一种方式(例如在按下时,你不知道用户是点击还是拖动)。另一种方式是在按下时调用QPointerEvent::addPassiveGrabber(),以便非独占地监视QEventPoint的进展。无论哪种情况,监视的项目或指针处理程序在明确手势符合其预期模式时,都可以稍后窃取独占抓取。
- childrenChanged()¶
属性
childrenRectᅟ的获取器。属性
childrenRectᅟ的通知信号。属性
clipᅟ的获取器。- clipChanged(arg__1)¶
- Parameters:
arg__1 – 布尔值
属性
clipᅟ的通知信号。返回此项目在当前
viewportItem()中可见的矩形区域,如果有视口并且设置了ItemObservesViewport标志;否则,返回此项目在其自身坐标系中的范围:从0, 0到width()和height()的矩形。如果clip为true,这是预期保持可见的区域。它也可以在updatePaintNode()中用于限制添加到场景图中的图形。例如,一个大型绘图或大型文本文档可能会显示在仅占据应用程序窗口一部分的Flickable中:在这种情况下,Flickable是视口项,而自定义内容渲染项可能会选择省略当前可见区域之外的场景图节点。如果设置了
ItemObservesViewport标志,每次用户在Flickable中滚动内容时,此区域都会发生变化。在嵌套视口项的情况下,clipRect() 是所有具有
ItemIsViewport标志的祖先的boundingRect的交集,映射到 此 项的坐标系中。另请参阅
- containmentMask()¶
- Return type:
另请参阅
属性
containmentMaskᅟ的获取器。- containmentMaskChanged()¶
属性
containmentMaskᅟ的通知信号。如果此项包含位于本地坐标中的
point,则返回true;否则返回false。此函数可以被重写,以便处理具有自定义形状的项目中的点碰撞。默认实现检查点是否在
containmentMask()内(如果已设置),否则检查点是否在边界框内。注意
此方法用于在事件传递期间对每个QEventPoint进行命中测试,因此实现应尽可能轻量。
返回此项目的光标形状。
当鼠标光标悬停在此项目上时,它将呈现此形状,除非设置了覆盖光标。请参阅预定义光标对象列表以获取一系列有用的形状。
如果没有设置光标形状,这将返回一个具有Qt::ArrowCursor形状的光标,但如果重叠的项目具有有效的光标,则可能会显示另一个光标形状。
另请参阅
- 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()不同。你可以转储这两棵树来查看差异。- enabledChanged()¶
属性
enabledᅟ的通知信号。- ensurePolished()¶
这对于诸如布局(或定位器)之类的项目可能很有用,这些项目会延迟计算它们的
implicitWidth和implicitHeight,直到它们收到PolishEvent。通常情况下,如果例如向布局中添加或移除子项,隐式大小不会立即计算(这是一种优化)。在某些情况下,可能希望在添加子项后立即查询布局的隐式大小。如果是这种情况,请在查询隐式大小之前使用此函数。
另请参阅
- filtersChildMouseEvents()¶
- Return type:
布尔
返回是否应通过此项过滤针对此项子项的指针事件。
如果此项和子项都有
acceptTouchEvents()true,那么当发生触摸交互时,此项将过滤触摸事件。但如果此项或子项无法处理触摸事件,childMouseEventFilter()将使用合成的鼠标事件被调用。返回此项目的项目标志。
另请参阅
- 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ᅟ的获取器。- focusPolicyChanged(arg__1)¶
- Parameters:
arg__1 –
FocusPolicy
属性
focusPolicyᅟ的通知信号。- forceActiveFocus()¶
强制激活项目的焦点。
此方法将焦点设置在项目上,并确保对象层次结构中的所有祖先FocusScope对象也被赋予
focus。焦点变化的原因将是 Qt::OtherFocusReason。使用重载方法来指定焦点原因,以便更好地处理焦点变化。
另请参阅
activeFocus- forceActiveFocus(reason)
- Parameters:
原因 –
FocusReason
这是一个重载函数。
强制将焦点设置在具有给定
reason的项目上。此方法将焦点设置在项目上,并确保对象层次结构中的所有祖先FocusScope对象也被赋予
focus。另请参阅
activeFocusFocusReason此函数用于处理此项目从
oldGeometry到newGeometry的几何变化。如果两个几何相同,则不执行任何操作。派生类必须在其实现中调用基类方法。
- grabMouse()¶
使用 QPointerEvent::setExclusiveGrabber()。
获取鼠标输入。
该项目将接收所有鼠标事件,直到调用
ungrabMouse()。通常不应调用此函数,因为接受例如鼠标按下事件确保后续事件将传递到该项目。如果一个项目想要从当前接收者接管鼠标事件,它需要调用此函数。警告
此函数应谨慎使用。
将项目抓取到内存中的图像。
抓取是异步进行的,当抓取完成时,会发出信号
ready()。使用
targetSize来指定目标图像的大小。默认情况下,结果将与项目具有相同的大小。如果抓取无法启动,函数将返回
null。- grabToImage(callback[, targetSize=QSize()])
- grabTouchPoints(ids)¶
- Parameters:
ids – .整数列表
使用 QPointerEvent::setExclusiveGrabber()。抓取由
ids指定的触摸点。这些触摸点将由项目拥有,直到它们被释放。或者,抓取可以被像Flickable这样的过滤项目偷走。使用
setKeepTouchGrab()来防止抓取被偷走。- hasActiveFocus()¶
- Return type:
布尔
属性
activeFocusᅟ的获取器。- hasFocus()¶
- Return type:
布尔
属性
focusᅟ的获取器。- height()¶
- Return type:
浮点数
另请参阅
属性
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:
浮点数
另请参阅
属性
implicitHeightᅟ的获取器。- implicitHeightChanged()¶
属性
implicitHeightᅟ的通知信号。- implicitWidth()¶
- Return type:
浮点数
返回由确定内容的其他属性所隐含的项目的宽度。
另请参阅
属性
implicitWidthᅟ的获取器。- implicitWidthChanged()¶
属性
implicitWidthᅟ的通知信号。- inputMethodEvent(event)¶
- Parameters:
事件 –
QInputMethodEvent
此事件处理程序可以在子类中重新实现,以接收项目的输入法事件。事件信息由
event参数提供。事件默认被接受,因此如果您重新实现此函数,则不需要显式接受事件。如果您不接受事件,请调用
event->ignore()。- inputMethodQuery(query)¶
- Parameters:
查询 –
InputMethodQuery- Return type:
对象
此方法仅适用于输入项。
如果此项是输入项,则应重新实现此方法以返回给定
query的相关输入方法标志。另请参阅
- isAncestorOf(child)¶
- Parameters:
子项 –
QQuickItem- Return type:
布尔
如果此项是
child的祖先(即,如果此项是child的父项,或者是child父项之一的祖先),则返回true。另请参阅
- 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__1 –
QQuickItem- Return type:
PyTuple
- keepMouseGrab()¶
- Return type:
布尔
返回鼠标输入是否应仅保留在此项目上。
另请参阅
setKeepMouseGrab()ignore()- keepTouchGrab()¶
- Return type:
布尔
返回此项目抓取的触摸点是否应独占保留在此项目上。
另请参阅
setKeepTouchGrab()keepMouseGrab()ignore()此事件处理程序可以在子类中重新实现,以接收项目的按键事件。事件信息由
event参数提供。事件默认被接受,因此如果您重新实现此函数,则不需要显式接受事件。如果您不接受事件,请调用
event->ignore()。此事件处理程序可以在子类中重新实现,以接收项目的按键释放事件。事件信息由
event参数提供。事件默认被接受,因此如果您重新实现此函数,则不需要显式接受事件。如果您不接受事件,请调用
event->ignore()。将全局屏幕坐标系中的给定
point映射到此项目的坐标系中的等效点,并返回映射后的坐标。在映射中使用项目的以下属性:
x、y、scale、rotation、transformOrigin和transform。如果项目属于不同的场景,映射包括两个场景的相对位置。
例如,这可能有助于向Qt Quick组件添加弹出窗口。
注意
窗口定位由窗口管理器完成,此值仅被视为提示。因此,最终的窗口位置可能与预期不同。
注意
如果此项位于子场景中,例如映射到3D模型对象上,UV映射将包含在此转换中,因此只要
point实际上在此项的边界内,它就会从屏幕坐标转换为此项的坐标。其他映射函数尚未以这种方式工作。另请参阅
- mapFromGlobal(x, y)
- Parameters:
x – 浮点数
y – 浮点数
- Return type:
- mapFromItem(item, point)¶
- Parameters:
项目 –
QQuickItem点 –
QPointF
- Return type:
将给定的
point在item的坐标系中映射到此项目的坐标系中的等效点,并返回映射后的坐标。在映射中使用项目的以下属性:
x、y、scale、rotation、transformOrigin和transform。如果项目属于不同的场景,映射包括两个场景的相对位置。
如果
item是None,这将从场景的坐标系映射point。另请参阅
- mapFromItem(item, rect)
- Parameters:
项目 –
QQuickItemrect –
QRectF
- Return type:
将给定的
point在item的坐标系中映射到此项目的坐标系中的等效点,并返回映射后的坐标。在映射中使用项目的以下属性:
x、y、scale、rotation、transformOrigin和transform。如果项目属于不同的场景,映射包括两个场景的相对位置。
如果
item是None,这将从场景的坐标系映射point。另请参阅
- mapFromItem(item, x, y)
- Parameters:
项目 –
QQuickItemx – 浮点数
y – 浮点数
- Return type:
- mapFromItem(item, x, y, width, height)
- Parameters:
项目 –
QQuickItemx – 浮点数
y – 浮点数
width – 浮点数
height – 浮点数
- Return type:
将场景坐标系中的给定
point映射到此项目的坐标系中的等效点,并返回映射后的坐标。在映射中使用项目的以下属性:
x、y、scale、rotation、transformOrigin和transform。如果项目属于不同的场景,映射包括两个场景的相对位置。
另请参阅
- mapRectFromItem(item, rect)¶
- Parameters:
项目 –
QQuickItemrect –
QRectF
- Return type:
将给定的
rect在item的坐标系中映射到此项目的坐标系中的等效矩形区域,并返回映射后的矩形值。在映射中使用项目的以下属性:
x、y、scale、rotation、transformOrigin和transform。如果项目属于不同的场景,映射包括两个场景的相对位置。
如果
item是None,这将从场景的坐标系映射rect。另请参阅
将场景坐标系中的给定
rect映射到此项目坐标系中的等效矩形区域,并返回映射后的矩形值。在映射中使用项目的以下属性:
x、y、scale、rotation、transformOrigin和transform。如果项目属于不同的场景,映射包括两个场景的相对位置。
另请参阅
- mapRectToItem(item, rect)¶
- Parameters:
项目 –
QQuickItemrect –
QRectF
- Return type:
将给定
rect在此项目的坐标系中映射到item的坐标系中的等效矩形区域,并返回映射后的矩形值。在映射中使用项目的以下属性:
x、y、scale、rotation、transformOrigin和transform。如果项目属于不同的场景,映射包括两个场景的相对位置。
如果
item是None,这将rect映射到场景的坐标系中。另请参阅
将给定
rect在此项目的坐标系中映射到场景坐标系中的等效矩形区域,并返回映射后的矩形值。在映射中使用项目的以下属性:
x、y、scale、rotation、transformOrigin和transform。如果项目属于不同的场景,映射包括两个场景的相对位置。
另请参阅
将给定
point在此项目的坐标系中映射到全局屏幕坐标系中的等效点,并返回映射后的坐标。在映射中使用项目的以下属性:
x、y、scale、rotation、transformOrigin和transform。如果项目属于不同的场景,映射包括两个场景的相对位置。
例如,这可能有助于向Qt Quick组件添加弹出窗口。
- mapToGlobal(x, y)
- Parameters:
x – 浮点数
y – 浮点数
- Return type:
- mapToItem(item, point)¶
- Parameters:
项目 –
QQuickItem点 –
QPointF
- Return type:
将给定
point在此项目的坐标系中映射到item的坐标系中的等效点,并返回映射后的坐标。在映射中使用项目的以下属性:
x、y、scale、rotation、transformOrigin和transform。如果项目属于不同的场景,映射包括两个场景的相对位置。
如果
item是None,这将point映射到场景的坐标系。另请参阅
- mapToItem(item, rect)
- Parameters:
项目 –
QQuickItemrect –
QRectF
- Return type:
将给定
point在此项目的坐标系中映射到item的坐标系中的等效点,并返回映射后的坐标。在映射中使用项目的以下属性:
x、y、scale、rotation、transformOrigin和transform。如果项目属于不同的场景,映射包括两个场景的相对位置。
如果
item是None,这将point映射到场景的坐标系。另请参阅
- mapToItem(item, x, y)
- Parameters:
项目 –
QQuickItemx – 浮点数
y – 浮点数
- Return type:
- mapToItem(item, x, y, width, height)
- Parameters:
项目 –
QQuickItemx – 浮点数
y – 浮点数
width – 浮点数
height – 浮点数
- Return type:
将给定
point在此项目的坐标系中映射到场景坐标系中的等效点,并返回映射后的坐标。在映射中使用项目的以下属性:
x、y、scale、rotation、transformOrigin和transform。如果项目属于不同的场景,映射包括两个场景的相对位置。
另请参阅
- 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:
返回焦点链中与此项目相邻的项目。如果
forward是true,或者未提供,则是向前方向的下一个项目。如果forward是false,则是向后方向的下一个项目。- opacity()¶
- Return type:
浮点数
另请参阅
属性
opacityᅟ的获取器。- opacityChanged()¶
属性
opacityᅟ的通知信号。- paletteChanged()¶
- paletteCreated()¶
- parentChanged(arg__1)¶
- Parameters:
arg__1 –
QQuickItem
属性
parentᅟ的通知信号。- parentItem()¶
- Return type:
另请参阅
属性
parentᅟ的获取器。- polish()¶
为此项目安排一个抛光事件。
当场景图处理请求时,它将在此项目上调用
updatePolish()。- releaseResources()¶
当项目应释放不由从
updatePaintNode()返回的节点管理的图形资源时,将调用此函数。当项目即将从其先前渲染的窗口中移除时,会发生这种情况。调用该函数时,项目保证有一个
window。该函数在GUI线程上调用,并且在使用时渲染线程的状态是未知的。不应直接删除对象,而应使用
scheduleRenderJob()安排清理。另请参阅
图形 资源 处理- resetAntialiasing()¶
属性
antialiasingᅟ的重置功能。- resetHeight()¶
属性
heightᅟ的重置功能。- resetWidth()¶
属性
widthᅟ的重置功能。- rotation()¶
- Return type:
浮点数
另请参阅
属性
rotationᅟ的获取器。- rotationChanged()¶
属性
rotationᅟ的通知信号。- scale()¶
- Return type:
浮点数
另请参阅
属性
scaleᅟ的获取器。- scaleChanged()¶
属性
scaleᅟ的通知信号。- scopedFocusItem()¶
- Return type:
如果此项是焦点范围,则返回其焦点链中当前具有焦点的项。
如果此项目不是焦点范围,则返回
None。- setAcceptHoverEvents(enabled)¶
- Parameters:
enabled – 布尔值
如果
enabled为 true,则此项目将接受悬停事件;否则,此项目不接受悬停事件。另请参阅
- setAcceptTouchEvents(accept)¶
- Parameters:
accept – 布尔值
如果
enabled为 true,则设置该项目接受触摸事件;否则,该项目不接受触摸事件。另请参阅
- setAcceptedMouseButtons(buttons)¶
- Parameters:
buttons –
MouseButton的组合
设置此项目接受的鼠标按钮为
buttons。注意
在Qt 5中,调用setAcceptedMouseButtons()隐式地导致项目接收触摸事件以及鼠标事件;但建议调用
setAcceptTouchEvents()来订阅它们。在Qt 6中,必须调用setAcceptTouchEvents()才能继续接收它们。- setActiveFocusOnTab(arg__1)¶
- Parameters:
arg__1 – 布尔值
另请参阅
属性
activeFocusOnTabᅟ的设置器。- setAntialiasing(arg__1)¶
- Parameters:
arg__1 – 布尔值
另请参阅
属性
antialiasingᅟ的设置器。- setBaselineOffset(arg__1)¶
- Parameters:
arg__1 – 浮点数
另请参阅
属性
baselineOffsetᅟ的设置器。属性
clipᅟ的设置器。属性
containmentMaskᅟ的设置器。设置此项目的
cursor形状。另请参阅
- setEnabled(arg__1)¶
- Parameters:
arg__1 – 布尔值
另请参阅
属性
enabledᅟ的设置器。- setFiltersChildMouseEvents(filter)¶
- Parameters:
filter – 布尔值
设置是否应通过此项目过滤针对此项目子项的指针事件。
如果
filter为真,当子项触发指针事件时,将调用childMouseEventFilter()。如果
enabled为真,则为此项目启用指定的flag;如果enabled为假,则禁用该标志。这些为项目提供了各种提示;例如,
ItemClipsChildrenToShape标志表示此项目的所有子项都应裁剪以适应项目区域。为此项目启用指定的
flags。- setFocus(arg__1)¶
- Parameters:
arg__1 – 布尔值
另请参阅
属性
focusᅟ的设置器。- setFocus(focus, reason)
- Parameters:
focus – bool
原因 –
FocusReason
- setFocusPolicy(policy)¶
- Parameters:
策略 –
FocusPolicy
将此项目的焦点策略设置为
policy。另请参阅
属性
focusPolicyᅟ的设置器。属性
heightᅟ的设置器。- setImplicitHeight(arg__1)¶
- Parameters:
arg__1 – 浮点数
另请参阅
属性
implicitHeightᅟ的设置器。- setImplicitSize(arg__1, arg__2)¶
- Parameters:
arg__1 – 浮点数
arg__2 – 浮点数
- setImplicitWidth(arg__1)¶
- Parameters:
arg__1 – 浮点数
另请参阅
属性
implicitWidthᅟ的设置器。- setKeepMouseGrab(keep)¶
- Parameters:
keep – 布尔值
设置鼠标输入是否应仅保留在此项目上。
这对于希望根据预定义手势抓取并保持鼠标交互的项目非常有用。例如,一个对水平鼠标移动感兴趣的项目可能会在超过某个阈值后将
keepMouseGrab设置为true。一旦keepMouseGrab被设置为true,过滤项目将不会对鼠标事件做出反应。如果
keep为 false,过滤项可能会窃取抓取。例如,Flickable 可能会在检测到用户开始移动视口时尝试窃取鼠标抓取。另请参阅
- setKeepTouchGrab(keep)¶
- Parameters:
keep – 布尔值
设置此项目抓取的触摸点是否应仅保留在此项目上。
这对于希望在预定义手势后抓取并保持特定触摸点的项目非常有用。例如,一个对水平触摸点移动感兴趣的项目可能会在超过阈值后将setKeepTouchGrab设置为true。一旦setKeepTouchGrab设置为true,过滤项目将不会对相关触摸点做出反应。
如果
keep为 false,过滤项可能会窃取抓取。例如,Flickable 可能会尝试窃取触摸点抓取,如果它检测到用户已经开始移动视口。属性
opacityᅟ的设置器。- setParentItem(parent)¶
- Parameters:
父级 –
QQuickItem
另请参阅
属性
parentᅟ的设置器。- setRotation(arg__1)¶
- Parameters:
arg__1 – 浮点数
另请参阅
属性
rotationᅟ的设置器。属性
scaleᅟ的设置器。将项目的大小设置为
size。此方法保留宽度和高度的任何现有绑定;因此,任何触发绑定再次执行的更改都将覆盖设置的值。属性
smoothᅟ的设置器。属性
stateᅟ的设置器。- setTransformOrigin(arg__1)¶
- Parameters:
arg__1 –
TransformOrigin
另请参阅
属性
transformOriginᅟ的设置器。- setVisible(arg__1)¶
- Parameters:
arg__1 – 布尔值
另请参阅
属性
visibleᅟ的设置器。属性
widthᅟ的设置器。属性
xᅟ的设置器。属性
yᅟ的设置器。属性
zᅟ的设置器。返回项目的大小。
- smooth()¶
- Return type:
布尔
另请参阅
属性
smoothᅟ的获取器。- smoothChanged(arg__1)¶
- Parameters:
arg__1 – 布尔值
属性
smoothᅟ的通知信号。- stackAfter(sibling)¶
- Parameters:
兄弟 –
QQuickItem
将指定的
sibling项移动到该项之后的索引位置,位于子项列表中。子项的顺序会影响视觉堆叠顺序和标签焦点导航顺序。假设两个项目的z值相同,这将导致
sibling在此项目下方渲染。如果两个项目都设置了
activeFocusOnTab为true,这也会导致标签焦点顺序发生变化,sibling会在此项目之前获得焦点。给定的
sibling必须是此项目的兄弟;也就是说,它们必须具有相同的直接parent。另请参阅
- stackBefore(sibling)¶
- Parameters:
兄弟 –
QQuickItem
将指定的
sibling项移动到该项之前的索引位置,位于子项列表中。子项的顺序会影响视觉堆叠顺序和标签焦点导航顺序。假设两个项目的z值相同,这将导致
sibling在此项目上方渲染。如果两个项目都设置了
activeFocusOnTab为true,这也会导致标签焦点顺序发生变化,sibling将在此项目之后获得焦点。给定的
sibling必须是此项目的兄弟;也就是说,它们必须具有相同的直接parent。另请参阅
- state()¶
- Return type:
字符串
另请参阅
属性
stateᅟ的获取器。- stateChanged(arg__1)¶
- Parameters:
arg__1 – str
属性
stateᅟ的通知信号。- textureProvider()¶
- Return type:
返回项目的纹理提供者。默认实现返回
None。此函数只能在渲染线程上调用。
- touchEvent(event)¶
- Parameters:
事件 –
QTouchEvent
此事件处理程序可以在子类中重新实现,以接收项目的触摸事件。事件信息由
event参数提供。事件默认被接受,因此如果您重新实现此函数,则不需要显式接受事件。如果您不接受事件,请调用
event->ignore()。- touchUngrabEvent()¶
此事件处理程序可以在子类中重新实现,以便在此项目上发生触摸取消抓取事件时收到通知。
- transformOrigin()¶
- Return type:
另请参阅
属性
transformOriginᅟ的获取器。- transformOriginChanged(arg__1)¶
- Parameters:
arg__1 –
TransformOrigin
属性
transformOriginᅟ的通知信号。属性
transformOriginPointᅟ的获取器。- ungrabMouse()¶
使用 QPointerEvent::setExclusiveGrabber()。
在调用
grabMouse()后释放鼠标抓取。请注意,此函数仅在项目希望停止处理进一步事件时调用。在释放或取消事件后无需调用此函数,因为无论如何都不会再收到任何未来事件。调用此函数后,将不会传递任何移动或释放事件。
- ungrabTouchPoints()¶
请使用 QEventPoint::setExclusiveGrabber() 代替。取消抓取此项目拥有的触摸点。
- unsetCursor()¶
清除此项目的光标形状。
另请参阅
- update()¶
为此项目安排调用
updatePaintNode()。如果项目显示在
QQuickWindow中,调用updatePaintNode()将始终发生。只有指定了
ItemHasContents的项目才允许调用QQuickItem::update()。- updateInputMethod([queries=Qt.ImQueryInput])¶
- Parameters:
查询 –
InputMethodQuery的组合
如果需要,通知输入法更新查询值。
queries表示已更改的属性。- updatePaintNode(oldNode, updatePaintNodeData)¶
- Parameters:
oldNode –
QSGNodeupdatePaintNodeData –
UpdatePaintNodeData
- Return type:
在渲染线程上调用,以便在需要时将项目的状态与场景图同步。
如果用户在项目上设置了
ItemHasContents标志,则函数会作为update()的结果被调用。该函数应返回此项目的场景图子树的根。大多数实现将返回一个包含此项目视觉表示的
QSGGeometryNode。oldNode是上次调用此函数时返回的节点。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()来在渲染下一帧之前执行所需的项目布局。另请参阅
- viewportItem()¶
- Return type:
如果设置了
ItemObservesViewport标志,则返回具有ItemIsViewport标志的最近父项。如果未设置该标志,或未找到其他视口项,则返回窗口的contentItem。仅当没有视口项且此项未在窗口中显示时返回
None。另请参阅
- visibleChanged()¶
属性
visibleᅟ的通知信号。- visibleChildrenChanged()¶
- wheelEvent(event)¶
- Parameters:
事件 –
QWheelEvent
此事件处理程序可以在子类中重新实现,以接收项目的滚轮事件。事件信息由
event参数提供。事件默认被接受,因此如果您重新实现此函数,则不需要显式接受事件。如果您不接受事件,请调用
event->ignore()。- width()¶
- Return type:
浮点数
另请参阅
属性
widthᅟ的获取器。- widthChanged()¶
属性
widthᅟ的通知信号。- widthValid()¶
- Return type:
布尔
返回是否已显式设置宽度属性。
- window()¶
- Return type:
返回呈现此项目的窗口。
该项目在被分配到场景之前没有窗口。
windowChanged()信号在项目进入场景和从场景中移除时都会提供通知。- windowChanged(window)¶
- Parameters:
窗口 –
QQuickWindow
当项目的
window发生变化时,会发出此信号。属性
xᅟ的获取器。- xChanged()¶
属性
xᅟ的通知信号。属性
yᅟ的获取器。- yChanged()¶
属性
yᅟ的通知信号。属性
zᅟ的获取器。- zChanged()¶
属性
zᅟ的通知信号。- class UpdatePaintNodeData¶
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
- PySide6.QtQuick.QQuickItem.UpdatePaintNodeData.transformNode¶