如何在QML中从数据库中检索数据?

时间:2014-07-17 14:03:58

标签: database qt qml

我正在尝试从QML中检索数据库中的数据。下面的代码在Qt5中有效但我无法从QML访问数据。我得到了:" unifined"。有人可以帮帮我吗?

db.cpp

dataB = QSqlDatabase::addDatabase("QPSQL");

dataB.setHostName("192...");
dataB.setDatabaseName("database");
dataB.setPort(123);

dataB.setUserName("user1");
dataB.setPassword("user1");

this->model = new QSqlQueryModel();

model->setQuery("SELECT status FROM telephone");

ui->tableView->setModel(model);//result is in the first image

QQuickView *view = new QQuickView();

QQmlContext *context = view->rootContext();
context->setContextProperty("mySQLmodel", model);

view->setSource(QUrl("main.qml"));
view->show();

main.qml

Rectangle {
width: 300
height: 300

ListView {
    id: someListView
    anchors
    {
        fill: parent
 }
   model: mySQLmodel
    delegate: Label {
       text:{ "1 " + mySQLmodel.status}
   }

 }}

enter image description here enter image description here

1 个答案:

答案 0 :(得分:0)

您应该尝试使用可以从qml访问的属性创建自己的c ++模型。然后,您可以从数据库中填充模型。 为您的模型看一下这个http://qt-project.org/doc/qt-4.8/qdeclarativemodels.html