У меня есть 2 файла qml.Установить свойство QML из другого QML
Я хочу установить 2-й qml fromperty из 1-го qml-файла.
**first.qml**
var cmponent = Qt.createComponent("second.qml");
var newObj = cmponent.createObject(swipeView);
newObj.pageIndex = i;
swipeView.insertItem(swipeView.currentIndex+i,newObj)
и вставить в SwipeView.
Где 'pageIndex
' - целочисленное свойство 2-го 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 элементов, тогда 6 элементов отображаются в первом представлении, а остальные 1 - на sendView с помощью swipeView для переключения этих представлений. 2. «GridLayout» находится в другом файле qml (second.qml). Каждая ячейка/элементы отображаются в сетке из значений, основанных на модели. –
Должно быть возможно использовать один «ListModel» в нескольких представлениях. Поэтому я бы предложил использовать «GridView» вместо «GridLayout». Затем вы можете просто использовать «волшебную» переменную 'index' в делегатах этого« GridView »для ваших целей. – derM