从 javascript 函数更改 GridView 中的组件属性
Posted
技术标签:
【中文标题】从 javascript 函数更改 GridView 中的组件属性【英文标题】:Change Component Properties In GridView from a javascript function 【发布时间】:2017-01-21 20:42:58 【问题描述】:我正在尝试使用 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";
【问题讨论】:
为什么你需要一个 javascript 函数来处理这些? GridView 中的委托只能对其模型条目数据的更改做出反应 我是一个初学者,我正在尝试寻找如何创建我的界面我不确定这是否是正确的方法。我刚刚编辑了我的问题,但是当我在文档中阅读时,您需要将逻辑与图形分开,所以我认为我的 c++ 函数将向我的 javascript 函数发出信号,而 javascript 函数将改变颜色.. 【参考方案1】:在简单尝试访问第二个Rectangle
后,我找到了解决问题的方法,就像访问Grid
的Rectangle
子级一样。
for (var i = 0; i < column.children.length; ++i)
grid.children[i].children[0].color="green";
【讨论】:
以上是关于从 javascript 函数更改 GridView 中的组件属性的主要内容,如果未能解决你的问题,请参考以下文章