Загрузка элементов QML в ListView из базы данных
Я пишу приложение для моего n9 и проблема с базой данных. Я не использую main.cpp или другой файл C++ для приложения. Я создаю, удаляю, добавляю и т. Д. Данные в базу данных, используя javscript из qml. Прямо сейчас я просто выкладываю строку со всеми записями. Все отлично работает Но теперь я хочу показать записи в базе данных в виде ListView. Как я могу это сделать?
1 ответ
Вы можете создать модель для вашего ListView динамически. Примерно так:
import QtQuick 2.0
import "main.js" as Main
Rectangle {
id: root
ListView {
width: 180; height: 200
model: Main.createModel(root)
delegate: Text {
text: name + ": " + number
}
}
}
а также main.js
function createModel(parent) {
var s = 'import QtQuick 2.0; ListModel {\n';
var data = ["a", "b"]; // your data from database will be here
for(var x in data) {
var s2 = "ListElement {name: \"" + x+ "\"; number: \"" + x + "\" }\n";
s += s2;
}
s += "}\n";
console.log(s);
return Qt.createQmlObject(s, parent, "mainModel");
}