Come usare Modello per QCombobox
-
01-10-2019 - |
Domanda
voglio usare QCombobox
come la Combobox
di Swing
in Java
. Così ho bisogno di usare Model
per tenere il mio oggetto. Come posso tenere il mio oggetto in QCombobox. (Credo che dovrei tenere i dati nel modello, perché QCombobox
è stato progettato in base alle MVC modello ...)
Qualsiasi aiuto sarà apprezzato.
Soluzione
A seconda di ciò che si desidera visualizzare con il tuo QComboBox
, avrete bisogno di scrivere il proprio modello, ereditando QAbstractListModel
, reimplementare rowCount()
and data()
.
Quindi, l'uso QComboBox::setModel()
per rendere il display QComboBox
esso.
Se si desidera solo per stringhe di visualizzazione, è possibile utilizzare un QStringListModel
, fornito con Qt.
Altri suggerimenti
È possibile aggiungere un modello alla vostra QCombobox
utilizzando la funzione setModel
. È possibile utilizzare un modello predefinito o creare il proprio ereditando da QAbstractItemModel
.
Il modello conterrà il tuo oggetto al display separato dai dati.
Qt utilizza una versione semplificata di MVC che ha solo le parti Model / View.
È possibile utilizzare una delle sottoclassi previste di QAbstractItemModel se don 't bisogno di alcun comportamento specializzato, quale usare dipende dal fatto di mantenere i dati in un file di sistema o una struttura di dati in memoria.
Si dovrebbe leggere l'intera sezione sulla model / view di programmazione nella documentazione Qt.