转换中的QML对象属性

时间:2017-07-15 16:53:42

标签: qml

我有一个对象,我想围绕一个点,其坐标存储在属性offsetxoffsety中。这是我的目标:

Rectangle {
    id: rec1
    property int offsetx: width/2
    property int offsety: height/2
    height: 50
    width: 50
    color: "blue"
    x: originx - offsetx
    y: originy - offsety
    transform: Rotation { origin.x: offsetx ; origin.y: offsety; angle: 45}
}

变换既不会识别offsetx也不会识别offsety,而位置属性x,y(均取决于偏移属性)可以正常工作。如果我写rec1.offsetx,那么变换会识别它,但如果我想实例化许多这些矩形(它们不一定有id),那么使用这种方法可能会有问题。

1 个答案:

答案 0 :(得分:1)

将上述代码移到单独的qml文件中 每个qml文件至少有一个根项,其属性可供其子项使用,而无需明确限定 的 SampleRect.qml

import QtQuick 2.6

Rectangle {
    id: rec1
    property int offsetx: width/2
    property int offsety: height/2
    height: 50
    width: 50
    color: "blue"
    x: 100 - offsetx
    y: 100 - offsety
    transform: Rotation { origin.x: offsetx ; origin.y: offsety; angle: 45}  //<- offsetx is accessible. same as rec1.offsetx
}

在main.qml文件中将其用作

SampleRect {
}