Bonjour,

Je souhaite ajouter dynamiquement des composants QML dans une QGraphicsScene, c'est a dire afficher un nombre de composants défini par l'utilisateur. Ceci est un test et l'objectif final est de créer des QList<MonComposant>. Le probleme est que lorsque je crée une instance de ma classe je ne parviens pas a l'afficher.
Avec le code suivant mon piechart est bien visible:
Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
 
    qmlRegisterType<PieChart>("Charts", 1, 0, "PieChart");
 
    QDeclarativeView view;
    view.setSource(QUrl("qrc:/app.qml"));
    view.show();
    return app.exec();
}

Avec ce code ci qui crée un nouveau piechart, la vue est vide

Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
 
    qmlRegisterType<PieChart>("Charts", 1, 0, "PieChart");
 
    QDeclarativeView view;
    PieChart *pie = new PieChart();
    QGraphicsScene *scene = new QGraphicsScene();
    scene->addItem(pie);
    view.setScene(scene);
    view.show();
    return app.exec();
}

J'ai crée ma classe Piechart qui hérite de QDeclarativeItem puis je l'ajoute a la QGraphicsScene. L'ajout d'un texte simple fonctionne mais pas celui de mon composant.

Qu'est ce que j'ai oublié (ou mal compris dans le fonctionnement)?

Merci d'avance


PS:Ceci est l'exemple de la doc. La méthode paint fonctionne puisque dans l'exemple 1 le piechart s'affiche correctement.