qml sqlite数据库的使用例子
时间: 2023-11-18 21:51:45 浏览: 383
QML SQLite数据库编程
QML中可以通过Qt Quick Local Storage来使用SQLite数据库。
以下是一个简单的例子:
```
import QtQuick.LocalStorage 2.0
Item {
id: root
width: 200
height: 200
property var db
Component.onCompleted: {
db = LocalStorage.openDatabaseSync("example", "1.0", "Example database", 1000000);
db.transaction(function(tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS users(name TEXT, age INT)');
tx.executeSql('INSERT INTO users VALUES (?, ?)', ['John', 30]);
tx.executeSql('INSERT INTO users VALUES (?, ?)', ['Jane', 25]);
});
}
Text {
text: 'Users:'
anchors.top: parent.top
anchors.horizontalCenter: parent.horizontalCenter
}
ListView {
anchors.top: text.bottom
anchors.left: parent.left
anchors.right: parent.right
model: ListModel {
id: userListModel
Component.onCompleted: {
db.readTransaction(function(tx) {
var res = tx.executeSql('SELECT * FROM users');
for(var i = 0; i < res.rows.length; i++) {
userListModel.append({ name: res.rows.item(i).name, age: res.rows.item(i).age });
}
});
}
}
delegate: Text {
text: name + ', ' + age
}
}
}
```
在这个例子中,我们首先通过`LocalStorage.openDatabaseSync()`打开了一个名为`example`的SQLite数据库,并创建了一个名为`users`的表。我们还向该表中插入了两条记录。
在UI中,我们使用了一个`ListView`来显示用户列表。我们使用`ListModel`作为数据模型,并在组件完成时使用`db.readTransaction()`执行一个SELECT查询,将结果添加到`userListModel`中。
阅读全文