我有2個qml文件。從另一個QML設置QML屬性
我想從第一個qml文件設置第二個qml fromperty。
**first.qml**
var cmponent = Qt.createComponent("second.qml");
var newObj = cmponent.createObject(swipeView);
newObj.pageIndex = i;
swipeView.insertItem(swipeView.currentIndex+i,newObj)
並插入到SwipeView中。
其中'pageIndex
'是2nd qml的整數屬性。 在第二個qml文件中,我有一個帶有單元格的GridLayout。 我需要顯示在此基礎上動態pageIndex
財產
second.qml單元格內容
申報財產。
property int pageIndex: 0
onPageIndexChanged:{
console.log("onPageIndexChanged :" +pageIndex)
home_grid.update()
}
onPageIndexChanged
方法被觸發,但是,我想根據屬性值設置網格單元格。
問題是 ,同時組件的初始化
var cmponent = Qt.createComponent("second.qml");
將細胞加載到GridLayout的。
我該如何發佈/解決此問題。
1:爲什麼用JS函數創建對象? 2:你的GridLayout在哪裏?你想在那裏展示的細胞是什麼?你不能用索引作爲模型的GridView嗎? – derM
1.我想動態創建視圖。基於ListModel計數。每個視圖都有具有最大元素6的網格。示例:模型包含7個元素,然後在firstView中顯示6個元素,並使用swipeView切換這些視圖,其餘1個顯示在sendView上。 2.「GridLayout」在另一個qml文件(second.qml)中。網格中的每個單元格/元素都基於模型的值顯示。 –
應該可以在多個視圖中使用一個'ListModel'。所以我會建議使用'GridView'而不是'GridLayout'。然後你可以在這個'GridView'的委託中使用'magic'變量'index'來達到你的目的。 – derM