Frage

Ich möchte QCombobox als die Combobox von Swing in Java verwenden. Also muss ich Model verwenden, um mein Ziel zu halten. Wie kann ich halte mein Objekt in QComboBox. (Ich glaube, dass ich Daten in Modell zu halten, weil QCombobox entworfen wurde nach MVC-Muster ...) Jede Hilfe wird sehr geschätzt.

War es hilfreich?

Lösung

Je nachdem, was Sie wollen mit Ihrem QComboBox angezeigt wird, müssen Sie Ihr eigenes Modell schreiben, QAbstractListModel vererben, rowCount()and data() Neuimplementierung.

Dann Verwendung QComboBox::setModel() die QComboBox Anzeige zu machen.

Wenn Sie nur zu Anzeigezeichenfolgen möchten, können Sie ein verwenden QStringListModel , versehen mit Qt.

Andere Tipps

Sie können ein Modell zu Ihrem QCombobox hinzufügen, indem Sie mit setModel Funktion . Sie können eine vordefinierte Modell verwenden oder eigene erstellen, indem Sie erben von QAbstractItemModel .

Ihr Modell enthält Ihr Objekt separate Anzeige von Daten.

Qt verwendet eine vereinfachte Version von MVC, die nur die Model / View-Teile.

Sie können einen der mitgelieferten Subklassen verwenden QAbstractItemModel wenn Sie don ‚t muß jedes spezielles Verhalten, die man zu verwenden hängt davon ab, ob Sie Ihre Daten in einem Dateisystem zu halten oder eine Datenstruktur im Speicher.

Sie sollten den ganzen Abschnitt Model / View-Programmierung lesen Sie in der Qt-Dokumentation.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top