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.

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top