Ajout dynamique de composants
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:
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:
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.