Comment insérer ListElement dans un QML ListModel à l'aide de C++?

Bien, je suis en train d'apprendre à travailler avec QML et j'ai un doute. Dans mon exemple, j'ai un ListModel avec ListElements à QML et j'ai un QML fichier principal avec un rectangle, PathView etc.

J'ai un QWidget aussi, que ma fenêtre principale. Dans ce QWidget-je inclure le QML de l'INTERFACE utilisateur comme un composant. Ok!

Comment puis-je gérer QML ListElements à l'aide de C++?

Note: quand je dis "à traiter", je veux dire un élément par exemple.

Ci-dessous sont quelques parties de mon code...

QML contenant mon ListElement, appelé "Menu1":

import QtQuick 1.0

ListModel {
    id: listMovieModel
    ListElement { name: "Image 1"; iconSource: "pics/image_1.jpg" }
    ListElement { name: "Image 2"; iconSource: "pics/image_2.jpg" }
    ListElement { name: "Image 3"; iconSource: "pics/image_3.jpg" }
    ListElement { name: "Image 4"; iconSource: "pics/image_4.jpg" }
    ListElement { name: "Image 5"; iconSource: "pics/image_5.jpg" }
    ListElement { name: "Image 6"; iconSource: "pics/image_6.jpg" }
}

Mon principal QML:

Rectangle {
    width: 500
    height: 600
    color: "transparent"

    PathView {
        id: view
        focus: true
        width: parent.width
        height: parent.height + y
        y: -150
        model: Menu1 {} //First QML showed
        delegate: Image {
            source: iconSource
            width: 64
            height: 90
            scale: PathView.isCurrentItem ? 3.5 * y / parent.height : 2.0 * y / parent.height
            z: y
            smooth: true
        }
        path: MyGeometricFigure { //This a another file, but is confidential
            width: view.width
            height: view.height
        }
        preferredHighlightBegin: 0
        preferredHighlightEnd: 0
        highlightRangeMode: PathView.StrictlyEnforceRange
        Keys.onLeftPressed: decrementCurrentIndex()
        Keys.onRightPressed: incrementCurrentIndex()
    }
}

Et comme je l'ai utiliser QML comme un composant pour mon QWidget:

MainForm::MainForm(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::MainForm)
{
    ui->setupUi(this);
    this->resize(1024, 576);

    QDeclarativeView *myQMLTest = new QDeclarativeView(QUrl::fromLocalFile("myMainQML.qml"));
    myQMLTest->setStyleSheet(QString("background: transparent; width: 600px"));

    this->ui->frameListVideoGallery->layout()->addWidget(myQMLTest);
    myQMLTest->setFocus();
    myQMLTest->installEventFilter(this);
}

J'ai vu quelques articles sur ce sujet, mais je ne suis pas en mesure de changer mon LisModel à l'aide de C++. J'ai vu ici http://doc.qt.nokia.com/4.7/qdeclarativemodels.html#c-data-models et ici, dans les exemples à l'aide de PathView http://doc.qt.nokia.com/4.7/qdeclarativeexamples.html

Quelqu'un peut m'aider?

Merci!

OriginalL'auteur Adriano Leal | 2012-02-02