DtkDeclarative
DTK Declarative module
载入中...
搜索中...
未找到
Dtk::Quick::DQuickItemViewport类 参考

DQuickItemViewport 类是根据 sourceItem 属性设定的 QQuickItem 作为绘制时的材质来源,这个行为依赖于 QQuickItem::textureProvider 提供组件的 材质。故可将qml的 Image 和 ShaderEffectSource 作为 sourceItem 使用。源材质的区域受 sourceRect 属性控制。此属性的坐标相对于 sourceItem,当属性未 设置时,坐标默认为 (0, 0),大小则跟随 DQuickItemViewport。此外,当 fixed 的值 为 false 时,源材质的位置还会受到 DQuickItemViewport 相对于 sourceItem 的位置 的影响,即当 fixed 为 false 且 sourceRect 的坐标为 (0, 0) 时,源材质的位置 是 DQuickItemViewport 在窗口坐标系中对 sourceItem 的投影,且绘制时也会实时跟随。 当 radius 属性为 0 时,将直接使用 QSGImageNode 作为渲染节点,当其值大于 0 时,将使用 QPainter 渲染按 radius 的值绘制一张圆角 QImage 资源,并将其作为 mask 材质跟 sourceItem 的材质一起运算,并且会使用自定义的片段着色器为材质实现圆角效果。 更多...

类 Dtk::Quick::DQuickItemViewport 继承关系图:

信号

void sourceItemChanged ()
 
void sourceRectChanged ()
 
void radiusChanged ()
 
void fixedChanged ()
 
void hideSourceChanged ()
 

Public 成员函数

 DQuickItemViewport (QQuickItem *parent=nullptr)
 
QQuickItem * sourceItem () const
 
void setSourceItem (QQuickItem *sourceItem)
 
QRectF sourceRect () const
 
void setSourceRect (const QRectF &sourceRect)
 
float radius () const
 
void setRadius (float radius)
 
bool fixed () const
 
void setFixed (bool newFixed)
 
bool hideSource () const
 
void setHideSource (bool newHideSource)
 
bool isTextureProvider () const override
 
QSGTextureProvider * textureProvider () const override
 

Protected 成员函数

void itemChange (ItemChange, const ItemChangeData &) override
 
void geometryChange (const QRectF &newGeometry, const QRectF &oldGeometry) override
 
QSGNode * updatePaintNode (QSGNode *old, UpdatePaintNodeData *) override
 
void componentComplete () override
 
void releaseResources () override
 

属性

QQuickItem * sourceItem
 
QRectF sourceRect
 
float radius
 
bool fixed
 
bool hideSource
 

详细描述

DQuickItemViewport 类是根据 sourceItem 属性设定的 QQuickItem 作为绘制时的材质来源,这个行为依赖于 QQuickItem::textureProvider 提供组件的 材质。故可将qml的 Image 和 ShaderEffectSource 作为 sourceItem 使用。

源材质的区域受 sourceRect 属性控制。此属性的坐标相对于 sourceItem,当属性未 设置时,坐标默认为 (0, 0),大小则跟随 DQuickItemViewport。此外,当 fixed 的值 为 false 时,源材质的位置还会受到 DQuickItemViewport 相对于 sourceItem 的位置 的影响,即当 fixed 为 false 且 sourceRect 的坐标为 (0, 0) 时,源材质的位置 是 DQuickItemViewport 在窗口坐标系中对 sourceItem 的投影,且绘制时也会实时跟随。 当 radius 属性为 0 时,将直接使用 QSGImageNode 作为渲染节点,当其值大于 0 时,将使用 QPainter 渲染按 radius 的值绘制一张圆角 QImage 资源,并将其作为 mask 材质跟 sourceItem 的材质一起运算,并且会使用自定义的片段着色器为材质实现圆角效果。

参见
QQuickItem::textureProvider
QQuickItem::isTextureProvider

该类的文档由以下文件生成: