PathAttribute QML 类型

指定如何在路径中的给定位置设置属性。 更多...

导入语句import QtQuick

属性

详细描述

PathAttribute 对象允许在路径上的各种点指定由名称和值组成的属性。这些属性作为附加属性暴露给代理。路径上任何特定点的属性值将从包围该点的 PathAttributes 进行插值。

下面的示例显示了一个路径,其中项目在路径顶部缩放为 30%,不透明度为 50%,在底部缩放为 100%,不透明度为 100%。请注意使用PathView.iconScale 和 PathView.iconOpacity 附加属性来设置代理的缩放和不透明度。

import QtQuick

Rectangle {
    width: 240; height: 200

    Component {
        id: delegate
        Item {
            width: 80; height: 80
            scale: PathView.iconScale
            opacity: PathView.iconOpacity
            Column {
                Image { anchors.horizontalCenter: nameText.horizontalCenter; width: 64; height: 64; source: icon }
                Text { id: nameText; text: name; font.pointSize: 16 }
            }
        }
    }

    PathView {
        anchors.fill: parent
        model: ContactModel {}
        delegate: delegate
        path: Path {
            startX: 120; startY: 100
            PathAttribute { name: "iconScale"; value: 1.0 }
            PathAttribute { name: "iconOpacity"; value: 1.0 }
            PathQuad { x: 120; y: 25; controlX: 260; controlY: 75 }
            PathAttribute { name: "iconScale"; value: 0.3 }
            PathAttribute { name: "iconOpacity"; value: 0.5 }
            PathQuad { x: 120; y: 100; controlX: -20; controlY: 75 }
        }
    }
}

(请参阅PathView 文档以了解 ContactModel.qml 的具体说明,该模块用于上面所述的 ContactModel。)

另请参阅 Path.

属性文档

name : string

该属性包含要更改的属性的名称。

此属性将作为 PathView.<name> 对代理可用

请注意,将现有 Item 属性名称(如 "opacity")用作属性是允许的。这是因为路径属性添加了一个新的 附加属性,它根本不会与现有属性冲突。


value : real

该属性包含属性的值。

指定的值可以用于影响路径上项目的视觉外观。例如,以下路径指定了一个名为 itemRotation 的属性,其在路径开始处的值为 0,在路径结束处的值为 90。

Path {
    startX: 0
    startY: 0
    PathAttribute { name: "itemRotation"; value: 0 }
    PathLine { x: 100; y: 100 }
    PathAttribute { name: "itemRotation"; value: 90 }
}

在我们的代理中,我们可以将 rotation 属性绑定到为此属性创建的 附加属性 PathView.itemRotation

Rectangle {
    width: 10; height: 10
    rotation: PathView.itemRotation
}

随着每个项目在路径上的定位,它将相应地旋转:路径开始处的项目将不会旋转,路径结束处的项目将旋转 90 度,路径中间的项目将旋转 45 度。


© 2024 Qt公司有限公司。本文档中包含的文档贡献为其各自所有者的版权。本提供的文档采用自由软件基金会发布的GNU自由文档许可协议第1.3版中的条款进行许可。Qt及其相关标志是世界各地芬兰及其它国家的Qt公司有限公司的商标。所有其他商标均为各自所有者的财产。