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.
Partager