0

我有一个带有信号和功能的项目。
现在我用一个FocusScope 封装这个Item,例如将一些带有别名的Item 属性绑定到FocusScope。但是我现在如何使用 Item 函数和信号呢?

例子:

FocusScope {
    property alias color: box.color

    Item {
        id: myBox
        anchors.fill: parent

        signal colorChanged()

        Rectangle {
            id: box
            width: parent.width
            height: parent.height
            anchors.centerIn: parent
            color: "red"
        }

        // some more code e.g. to emit the signal
    }
}

当我现在创建其中一个 FocusScope 时,我无法访问该项目的信号。

使用 FocusScopes 时,我真的必须为所有内容实现包装器吗?或者我应该用 FocusScope替换项目?

4

1 回答 1

1

我认为用 FocusScope 替换 item 会更好,我看不出 Item 在这里是否有任何用途。

您可以修改您的代码,如下所示。

FocusScope {
    property alias color: box.color
    signal colorChanged()

    Rectangle {
        id: box
        width: parent.width
        height: parent.height
        anchors.centerIn: parent
        color: "red"
    }
    // some more code e.g. to emit the signal
}

如果要使用FocusScope下的Item,则需要在FocusScope下定义信号和函数。

于 2013-08-20T14:18:37.480 回答