Как я могу динамически перейти к созданию XmlModelList запроса? - PullRequest
0 голосов
/ 03 августа 2020

Я хочу динамически создать объект qml, содержащий модель XMLListmodel.

Я хотел бы передать созданный мной запрос как свойство, но я не знаю, как передать это свойство динамически, поскольку с create.object я не могу. Есть ли другой способ?

element.qml

import QtQuick 2.0
import QtQuick.Controls 2.12
import QtQuick.XmlListModel 2.12

Item {
    
    XmlListModel
    {
       id:secondaLista
        property string adding:"[2]"
        source: "file.xml"
        query: "/tag1/tag2" + adding
        XmlRole
        {
            name:"tag3"; query:"tag3/string()"
        }
        XmlRole
        {
            name:"tag4"; query:"tag4/string()"
        }

    }*/

    GridView
    {
...
function create()
{
   var component;
   var object;
   component = Qt.createComponent("element.qml");
   object= component.createObject(parent, {adding."[2]"});
...
}

1 Ответ

1 голос
/ 04 августа 2020

Думаю, ваш код должен быть немного другим:

Element.qml

Item {
    id: item
    property string adding: "[2]"
    
    XmlListModel
    {
        id:secondaLista                       
        query: "/tag1/tag2" + item.adding
        ...
    }
}

а затем:

function create()
{
    var component = Qt.createComponent("Element.qml");             
    var object = component.createObject(parent, { adding: "[2]" });    
}

Обратите внимание : Насколько я знаю, имя пользовательского элемента должно быть с заглавной буквы в начале.

...