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.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top