leamus |
2017-05-30 08:07 |
关于Qt.binding的一个小思考
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.testVar = Qt.binding(function(){ return objList1.testVar }) }
Component.onCompleted: { var i; for(i = 0; i < 5; i++) { objList1.push(comp.createObject(root)) objList1.iD = i } for(i = 0; i < 5; i++) { objList2.push(comp.createObject(root)) objList2.iD = i + 100 objList2.testVar = Qt.binding(function(){ return objList1.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.testVar = Qt.binding(function(){ return objList1.testVar }) }
Component.onCompleted: { var i; for(i = 0; i < 5; i++) { objList1.push(comp.createObject(root)) objList1.iD = i } for(i = 0; i < 5; i++) { objList2.push(comp.createObject(root)) objList2.iD = i + 100 //objList2.testVar = Qt.binding(function(){ // return objList1.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是静态绑定? |
|