2016-08-09 65 views
2

Ich schreibe gerade einen Prototyp einer AVOD Portal-Anwendung für eingebettete Systeme mit Qt und QML.Implementieren verschiedener Ansichten mit Qt und QSortFilterProxyModel

Grundsätzlich habe ich einen Katalog von Medien (Musik, Stream, Filme etc.). Ich plane, nach verschiedenen Ansichten der Medien haben, um die Wahl der Benutzer:

  • alle Medien sehen
  • sehen nur den Film Medien
  • sehen nur die Musik usw.

Zu diesem Zweck habe ich vor, einen QAbstractListModel zu implementieren, um meinen gesamten Katalog zu implementieren. Und dann, ich plane verschiedene QSortFilterProxyModel Objekte zu implementieren, um das Display nach Wahl des Benutzers zu filtern (siehe. Oben).

Ich habe MVC mit Qt für eine Weile verwendet, aber ich habe nie das Proxy-Modell verwendet. Also, bevor ich in den Code eintrete, frage ich mich, ob es eine zuverlässige Lösung ist und ob es zur Integration der Modelle in QML passt?

Z.

+0

Sie können auch das SortFilterProxyModel qml wrapper, das auf qpm.io –

+0

verfügbar ist, dank Marco für dieses feedback überprüfen. – Zyend

Antwort

1

Ein Proxy-Modell ist ein Modell, das zufällig andere Modelle hinter den Kulissen abfragt. Dass ein Modell ein Proxy ist, ist ein Implementierungsdetail, das für den Benutzer des Modells (z. B. für die Ansicht) nicht sichtbar ist. Es gibt nichts besonderes, wenn ein Modell aus Sicht des Modellbenutzers ein Proxy ist. Ein Proxy-Modell ist "nur" ein QAbstractItemModel mit etwas Bequemlichkeitscode hinzugefügt, wenn Sie zufällig von einer der Proxy-Basisklassen ableiten.

Mit anderen Worten, es gibt nicht viel zu einem Proxy-Modell: Es muss alle Anforderungen erfüllen, die an eine QAbstractItemModel gestellt werden, weil es eins ist.

Also ja, Ihr Ansatz wird funktionieren.

2

Ich frage mich, ob es sich um eine zuverlässige Lösung ist und wenn es passt mit der Integration der Modelle in QML?

Ja und ja.