2016-10-26 3 views
0

Я хочу передать объекты из одного qml в другой qml. У меня есть модель списка.Как передать объекты между qml

ListModel { 
     id:favouriteapp 
      ListElement { 
       id: 1 
       name:"ABSC" 
       title:"5:03pm" 
       description:"heloo-1" 
       icon1:"images/climate_icon.png" 
       icon2:"images/climate_icon.png" 
       pinStatus : false 
       isLoaded: false 

      } 
      ListElement { 
       id: 2 
       name:"GHTT" 
       title:"Home at 5:23pm" 
       description:"via Gaydon Road-2" 
       icon1:"images/navigation_icon.png" 
       icon2:"images/navigation_icon.png" 
       pinStatus : false 
       isLoaded: false 

      } 
} 

Теперь я пройти каждое свойство ListElement с помощью строкового значения к другому QML.

Как передать весь этот объект ListElement другим qml.

+0

все 'id' не должны быть строкой или числом. [Read] (http://doc.qt.io/qt-5/qtqml-syntax-objectattributes.html#the-id-attribute) документы. Просто сделайте это, например 'id: obj1' и, таким образом, передайте' obj1' в качестве ссылки на элемент. – folibis

+0

@folibis: id является одним из свойств в моем «ListElement». Я отредактировал код –

+0

Вы только что удалили 'id's? Вы прочитали мой ответ? – folibis

ответ

1

Как @folibis сказал, вы должны дать правильный идентификатор для вашего объекта

ListElement { 
    id: obj1 
    ... 
} 

Вот MyFile.qml, к которому вы можете передать ссылку на ваш ListElement объекта:

Item{ 
    ... 
    function myFunction(listElementObject){ 
     //whatever you need to do with your object 
    } 
} 

И в тот же файл QML, что и у ListModel, у вас будет

MyFile{ 
    id: myFileId 
} 

Component.onCompleted: myFileId.myFunction(obj1) 
0

Вы всегда можете использовать favouriteapp.get() для доступа к любому из элементов списка как объекта JavaScript и передать этот объект туда, где вам это нужно.

Вы также можете разрешить другому компоненту доступ к модели и предоставить ему доступ к элементу списка, который ему нужен.

Вы также можете предоставить другому компоненту объект данных или отдельные свойства и привязать их к тому месту, где у вас есть доступ к модели.

+0

с помощью функции «favouriteapp.get()», как я могу получить доступ к модели из другого qml. Мое представление Id модели «favouriteapp» находится только в первом qml. –

+0

Вы имеете в виду опцию 2? Добавьте свойство к другому компоненту и назначьте его listmodel этому свойству –

+0

NO. Я хочу передать объект из одного qml в другой qml. –