Ich möchte QCombobox
als Combobox
von Swing
in Java
verwenden. Also muss ich Model
verwenden, um mein Objekt zu halten. Wie kann ich mein Objekt in QCombobox halten? (Ich denke, dass ich Daten in Model speichern sollte, da QCombobox
nach MVC Pattern entworfen wurde ...)
Jede Hilfe wird geschätzt.
Je nachdem, was Sie mit Ihrem QComboBox
anzeigen möchten, müssen Sie Ihr eigenes Modell schreiben, indem Sie QAbstractListModel
erben, rowCount()
und data()
erneut implementieren.
Verwenden Sie dann QComboBox::setModel()
, damit QComboBox
es anzeigt.
Wenn Sie nur Strings anzeigen möchten, können Sie ein QStringListModel
verwenden, das mit Qt bereitgestellt wird .
Sie können ein Modell zu Ihrem QCombobox
hinzufügen, indem Sie die Funktion setModel
verwenden. Sie können ein vordefiniertes Modell verwenden oder ein eigenes erstellen, indem Sie von QAbstractItemModel
erben.
Ihr Modell enthält Ihr Objekt, um die Anzeige von den Daten zu trennen.
Qt verwendet eine vereinfachte Version von MVC, die nur die Modell- / Ansichtsteile enthält.
Sie können eine der bereitgestellten Unterklassen von QAbstractItemModel verwenden, wenn Sie kein spezielles Verhalten benötigen Welche davon zu verwenden ist, hängt davon ab, ob Sie Ihre Daten in einem Dateisystem oder einer Datenstruktur im Speicher behalten.
Sie sollten den ganzen Abschnitt über Modell- / Ansichtsprogrammierung im Qt lesen Dokumentation.
Tags und Links c++ qt qt4 qcombobox qabstractitemmodel