Verwendung von Model für QCombobox

8

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.

    
ibrahimyilmaz 27.08.2010, 08:14
quelle

3 Antworten

9

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 .

    
Jérôme 27.08.2010, 08:28
quelle
3

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.

    
Patrice Bernassola 27.08.2010 08:27
quelle
2

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.

    
teukkam 27.08.2010 08:29
quelle