1 pièce(s) jointe(s)
Instanciation multiple de QTreeWidgetItem
Salut,
Je teste pas mal de trucs différents en ce moment, dont Qt. Et je me suis tourné vers les arbres. C'est bien pratique. Et puis, j'ai voulu faire mon cochon, et tenter d'initialiser mon arbre en 3 lignes, avec un code un poil abstrait à base de templates, d'allocateurs, et de nombres.
En gros, voici ce que ça me donne :
Code:
primitives = new QVector<QTreeWidgetItem*>(ui::nbPrimitives, new QTreeWidgetItem(tree));
Où ui::nbPrimitives est le nombre de primitives et tree l'arbre qui va accueillir les QTreeWidgetItems. Vient ensuite les propriétés textuelles :
Code:
1 2
| for (QVector<QTreeWidgetItem*>::Iterator it = primitives->begin(), end = primitives->end(); it != end; ++it, ++i)
(*it)->setText(0, ui::primitives[i]); |
Et là encore, tout se passe bien. J'ai même, via un logger, obtenu la sortie suivante par rapport à cette boucle :
Code:
1 2 3 4 5 6 7
| Debugging starts
PRIMITIVE Plan
PRIMITIVE Cylindre
PRIMITIVE Tore
PRIMITIVE Octaèdre régulier
PRIMITIVE Théière
Debugging has finished |
Seulement, quand je lance mon programme, il apparaît que seule la dernière primitive est définie dans l'arbre. Vous pouvez avoir un rapide visuel sur la pièce-jointe.
Le hic, c'est que je comprends pas pourquoi. Je n'ai rien changé par rapport à mon code précédent, si ce n'est le fait d'instancier l'ensemble de mes QTreeWidgetItem en une seule ligne.
Alors... je me demande si l'un de vous saurait peut-être ? Est-ce un oubli de ma part ? Ou bien un bug de Qt et de ses macros ? :aie:
Merci d'avance à tous les tordus qui pourront m'aider à comprendre, ou me convaincre d'y renoncer.