Ich versuche, eine SQLite-Datenbank mit QT Quick zu integrieren, aber ich kann keine Beispiele finden. Ich möchte nur auf Objekte aus einer Datenbank zugreifen können. Kennt jemand irgendwelche Beispielprogramme, mit denen ich spielen kann?
Sie könnten beispielsweise QSqlQueryModel oder ein anderes SQL-Modell verwenden und es hinzufügen in den QML-Kontext und verwenden Sie es zum Beispiel in der ListView.
Definieren Sie die Rollennamen, die von Delegaten verwendet werden, um auf Daten nach Rollen in QtQuick-Komponenten zuzugreifen ( data
method ist etwas naiv, da keine Fehlerprüfung stattfindet):
Erstellen Sie eine Instanz der neu definierten Modellklasse und fügen Sie sie dem QML-Kontext hinzu
%Vor% Binden Sie Ihr Modell an die Eigenschaft ListViews model
und verwenden Sie zuvor definierte Rollennamen, um auf die Daten im Delegaten zuzugreifen.
rebus ist ein guter Anfang, aber ich habe mich gefragt, wie ich mich mit einer bestehenden (SQLite) Datenbank verbinden kann.
Also hier ist ein vollständiges Beispiel für Qt 5.x, keine Voraussetzungen benötigt.
Beachten Sie, dass der Code den Hashnamen der Rollennamen in SqlModel.data () und alle überflüssigen Heapzuweisungen vermeidet.
main.cpp
%Vor%main.qml
%Vor%resources.qrc
%Vor%minimal-qml-sql-app.pro
%Vor%In Qt 5.3 gibt es ein Beispiel in
Beispiele / Qt-5.3 / Quick / Controls / Kalender
Eine interessante Anmerkung im Vergleich zu den Antworten von Rebus und Kay: Das Kalenderbeispiel macht das SqlModel mit
verfügbarqmlRegisterType ()
Dies ermöglicht einen deklarativen Programmierstil: Es ist nicht notwendig, ein SqlModel in main.cpp zu instanziieren. Stattdessen deklarieren Sie es in Ihrem qml.