2016-04-10 3 views
2

Я подключил C++ классы с QML щ, как это:Отображение результатов запроса в списке QML

QQmlApplicationEngine engine; 

engine.load(QUrl(QStringLiteral("qrc:/App/main.qml"))); 

qmlRegisterSingletonType<SessionManager>("AppManager", 0, 1, "SessionManager", SessionManager::qmlSingleton); 

Я могу вернуть простые результаты, как строки или числа с успехом, но то, что я хочу сделать теперь, чтобы иметь возможность отображать в списке результаты заявления SELECT в моей базе данных.

Что мне следует возвращать из моего метода C++ и как мне управлять им в qml-части, может ли кто-нибудь предоставить пример?

ответ

2

У вас есть несколько альтернатив.

  1. Вы можете создать подкласс QSqlQueryModel и реализовать что-то подобное в этом answer

  2. Вы можете использовать QxORM, A Qt/C++ ОРМ и подключить его к представлению QML, у них есть простой пример на их faq

  3. Если вы просто хотите, чтобы отобразить выход в Sqlite запроса, вы можете использовать библиотеку, что я сделал это простой ORM для QML/Sqlite, можно клонировать из repository и проверить, как использовать его от docs

Надеюсь, что это поможет.

+0

На данный момент я решил проверить первое предложение, так как не нужно включать какие-либо библиотеки, звучит более привлекательно. После подкласса 'QSqlQueryModel' в связанном ответе значения передаются с помощью' engine.rootContext() -> setContextProperty', тогда как я использую 'qmlRegisterSingletonType'. Должен ли я идти дальше и устанавливать модель в rootContext? – ealiaj

Смежные вопросы