Comment utiliser le modèle pour QComboBox
-
01-10-2019 - |
Question
Je veux utiliser QCombobox
comme le Combobox
de Swing
dans Java
. Donc, je dois utiliser Model
pour tenir mon objet. Comment puis-je tenir mon objet dans QComboBox. (Je pense que je devrais conserver des données dans le modèle parce QCombobox
a été conçu selon le modèle MVC ...)
Toute aide sera appréciée.
La solution
En fonction de ce que vous voulez afficher avec votre QComboBox
, vous aurez besoin d'écrire votre propre modèle, héritant QAbstractListModel
, réimplémentant rowCount()
and data()
.
Ensuite, utilisez QComboBox::setModel()
pour que l'écran de QComboBox
il.
Si vous voulez juste des chaînes d'affichage, vous pouvez utiliser un QStringListModel
, muni Qt.
Autres conseils
Vous pouvez ajouter un modèle à votre QCombobox
en utilisant la fonction setModel
. Vous pouvez utiliser un modèle prédéfini ou créer votre propre en héritant de QAbstractItemModel
.
Votre modèle contiendra votre objet à l'affichage séparé des données.
Qt utilise une version simplifiée de MVC qui ne dispose que les parties Model / View.
Vous pouvez utiliser l'une des sous-classes fournies de QAbstractItemModel si vous ne « t besoin tout comportement spécialisé, lequel utiliser dépend si vous conservez vos données dans un système de fichiers ou une structure de données en mémoire.
Vous devriez lire toute la section programmation modèle / vue dans la documentation Qt.