2012-05-09 12 views
7

Ich möchte benutzerdefinierte Daten mit einem Modell speichern. Dafür bin ich etwas verwirrt darüber, welches Item-Modell ich für die Unterklasse wählen soll. Ich brauche etwas Klärung als, welches ist das beste Modell zum Unterklassen? Und ich brauche auch die Vorteile von QAbstractItemModel gegenüber QStandardItemModel?Was sind die Vorteile von QAbstractItemModel gegenüber QStandardItemModel?

Danke!

Antwort

2

Es hängt von Ihren Bedürfnissen ab. Verwenden Sie QStandardItemModel, wenn Sie nur benutzerdefinierte Daten speichern und keine eigene Modelllogik schreiben möchten. Dieser ist generisch, Sie können ihn für benutzerdefinierte Daten ohne Unterklassen verwenden. Wenn Sie eine eigene Modelllogik schreiben möchten, wählen Sie QAbstractItemModel. Es ist abstrakte Klasse. Es bedeutet, es hat kein Verhalten implementiert, es ist nur eine "Schnittstelle". Es zeigt Ihnen, welche Methoden Ihr Modell implementieren sollte, damit es als eine andere ItemModel-Klasse in Qt verwendet werden kann.

+0

Danke kousalik! Irgendwelche anderen großen Unterschiede? – Dev

+0

Nein, QStandardItemModel ist eine Implementierung (Unterklasse) von QAbstractItemModel – Kousalik

+0

@Kousalik Könnten Sie möglicherweise erweitern, was Sie mit "Modelllogik" meinen? Welche spezifische Modelllogik implementiert QStandardItemModel, was das AbstractItemModel nicht tut? Wenn Sie beispielsweise möchten, dass Ihr Modell bearbeitbar ist, ist es mit einem StandardItemModel einfacher? Ich bin nur neugierig, weil ich QAbstractItemModel verwendet habe, und darüber nachdenke, warum ich nicht zu QStandardItemModel wechseln sollte oder nicht. – neuronet