QML - 通过FocusScopes中继功能和信号

时间:2013-08-20 10:50:11

标签: qt qml

我有一个包含信号和功能的物品 现在我用FocusScope封装了这个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
    }
}

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

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

1 个答案:

答案 0 :(得分:1)

我认为用FocusScope替换项目更好,我不知道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下定义信号和功能。