|
1Qter豆
Qt.binding函数,好像不可以写在for循环中:上代码
错误代码:
- import QtQuick 2.7
- import QtQuick.Controls 1.5
- Item {
- property var objList1: []
- property var objList2: []
- id: root
- Component {
- id: comp
- QtObject {
- property int iD
- property int testVar : -1
- onTestVarChanged: {
- console.debug(iD,testVar)
- }
- }
- }
- function bind(i) {
- objList2[i].testVar = Qt.binding(function(){
- return objList1[i].testVar
- })
- }
- Component.onCompleted: {
- var i;
- for(i = 0; i < 5; i++) {
- objList1.push(comp.createObject(root))
- objList1[i].iD = i
- }
- for(i = 0; i < 5; i++) {
- objList2.push(comp.createObject(root))
- objList2[i].iD = i + 100
- objList2[i].testVar = Qt.binding(function(){
- return objList1[i].testVar
- })
- //bind(i)
- }
- objList1[0].testVar = 1
- objList1[1].testVar = 2
- objList1[2].testVar = 3
- objList1[3].testVar = 4
- objList1[4].testVar = 5
- }
- }
复制代码
正确代码:
- import QtQuick 2.7
- import QtQuick.Controls 1.5
- Item {
- property var objList1: []
- property var objList2: []
- id: root
- Component {
- id: comp
- QtObject {
- property int iD
- property int testVar : -1
- onTestVarChanged: {
- console.debug(iD,testVar)
- }
- }
- }
- function bind(i) {
- objList2[i].testVar = Qt.binding(function(){
- return objList1[i].testVar
- })
- }
- Component.onCompleted: {
- var i;
- for(i = 0; i < 5; i++) {
- objList1.push(comp.createObject(root))
- objList1[i].iD = i
- }
- for(i = 0; i < 5; i++) {
- objList2.push(comp.createObject(root))
- objList2[i].iD = i + 100
- //objList2[i].testVar = Qt.binding(function(){
- // return objList1[i].testVar
- //})
- bind(i)
- }
- objList1[0].testVar = 1
- objList1[1].testVar = 2
- objList1[2].testVar = 3
- objList1[3].testVar = 4
- objList1[4].testVar = 5
- }
- }
复制代码 请问这能说明什么问题?Qt.binding是静态绑定?
|
|