-
Un widget dynamique
Bonjour,
Je suis en train de créer un widget dynamique (un bien grand mot), c'est à dire dans lequel je dois ajouter ou enlever certains de ses widget enfants en cours d'exécution (selon la volonté de l'utilisateur). En bref, sa gueule change beaucoup en cours d'exécuion ("Qu'eeeeest-ce qu'elle a ma gueuuuuuuuuuuule?") :aie:
La question c'est: comment le faire le plus proprement possible, sachant que c'est pas juste quelques widgets que je pourrais mettre en invisible, mais quelques dizaines, peut-être plus de cent widgets dans un QScrollView. J'ai pour l'instant trouvé deux solutions:
1) Stocker chaque widget, dans un QVector<QWidget*> par exemple, et quand je veux les enlever je les supprime du layout puis je les delete. Est-ce que ça pose auncun problème au widget parent (après quelques tests on dirait pas, mais on sait jamais)?
2) Détruire mon widget parent, qui va récursivement détruire tous ses enfants, puis le recréer. Semble un peu extrême, mais pourquoi pas?
A votre avis, c'est quoi le mieux?
-
Salut, moi aussi je fais quelque chose dans le genre, sauf que j'utilise un QList au lieu d'un QVector parce que For most purposes, QList is the right class to use. Note, j'ajoute aussi dynamiquement un QGridLayout dans lequel je pose mes widgets nouvellement crées. Il peut m'arriver d'en détruire aussi, dans ce cas, s'ils sont par exemple dans un QListWidget, j'appelle les méthodes similaires à remove avant de détruire l'objet en question.