从JavaScript函数更改GridView中的组件属性

时间:2017-01-21 20:42:58

标签: qt gridview qml qt5 qtquick2

我正在尝试使用Qt快速创建GUI,我将在多个文件中拥有大量数据,并且我将通过C ++(在那里留下逻辑)不断更新GUI,这将发出一定的JS函数(不确定是否这是做事的正确方法。)

我用Grid(非GridView)布局做了一个简单的例子,因为我找到了如何更改第一个矩形的颜色而不是嵌套的颜色。这是:

Column{
    spacing:2

    Grid{
        id:grid
        columns: 2
        rows:2
        spacing: 10
        Repeater{
            model:4

            Rectangle{
                id:rect1
                width:100
                height:100
                color:"red"
                Rectangle{
                    id:rect2
                    width:25
                    height: 25
                    color:"black"
                    anchors.horizontalCenter: rect1.horizontalCenter
                    anchors.verticalCenter: rect1.verticalCenter
                }

            }
        }
    }

    Button{
        text:"Click me"
        width:50
        height:50
        onClicked: {
            for (var i = 0; i <grid.children.length; ++i)
                column.children[i].color="green";
        }
    }
}

1 个答案:

答案 0 :(得分:1)

我通过简单尝试访问第二个Rectangle找到了问题的解决方案,就像我访问Rectangle的{​​{1}}个孩子一样。

Grid