Les cuento mi problema, estoy haciendo algunas pruebas con QML y necesito mostrar información de una BD sqlite. En este ejemplo tengo una simple conexión a la BD, luego consulta una tabla que me devuelve solo un campo y este lo envió a QML para que lo reciba un ListView pero este no muestra nada.... aparentemente no esta llegando los datos consultados por el QSqlQueryModel y QQmlContext
o si pueden enviar el link de algún ejemplo parecido a este y tener una referencia, estaré agradecido.
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
QtQuick2ApplicationViewer viewer;
viewer.rootContext()->setContextProperty("QtQuick2ApplicationViewer", &viewer);
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("d:\sqlite\mibase.db");
if(!db.open())
{
//qDebug() << db.lastError();
qFatal("No conectado!");
}
else
qDebug("Conectado.");
QSqlQueryModel *someSqlModel = new QSqlQueryModel();
someSqlModel->setQuery("select nombre from alumno");
QQmlContext *context = viewer.rootContext();
context->setContextProperty("datamodel", someSqlModel);
viewer.setMainQmlFile(QStringLiteral("qml/prueba2/main.qml"));
viewer.showFullScreen();
viewer.showExpanded();
viewer.show();
return app.exec();
}
main.qml
=====================================0
Rectangle {
id: window
width: 600
height: 468
ListView {
width: 200; height: 200
model: datamodel
delegate: Row {
Rectangle {
width: 100; height: 40
Text {
anchors.fill: parent
text: display
}
}
}
}
}
Saludos,
Johan