在程序中,我们经常需要把一些数据持久化,比如一些设置信息和程序配置。QML并不能直接访问本地文件,但是可以通过
Offline Storage API访问本地Sqlite数据库,从而达到目的。
首先在qml目录下创建一个storage.js
//storage.js
// 首先创建一个helper方法连接数据库
function getDatabase() {
return openDatabaseSync("MyAppName", "1.0", "StorageDatabase", 100000);
}
// 程序打开时,初始化表
function initialize() {
var db = getDatabase();
db.transaction(
function(tx) {
// 如果setting表不存在,则创建一个
// 如果表存在,则跳过此步
tx.executeSql('CREATE TABLE IF NOT EXISTS settings(setting TEXT UNIQUE, value TEXT)');
});
}
// 插入数据
function setSetting(setting, value) {
var db = getDatabase();
var res = "";
db.transaction(function(tx) {
var rs = tx.executeSql('INSERT OR REPLACE INTO settings VALUES (?,?);', [setting,value]);
//console.log(rs.rowsAffected)
if (rs.rowsAffected > 0) {
res = "OK";
} else {
res = "Error";
}
}
);
return res;
}
// 获取数据
function getSetting(setting) {
var db = getDatabase();
var res="";
db.transaction(function(tx) {
var rs = tx.executeSql('SELECT value FROM settings WHERE setting=?;', [setting]);
if (rs.rows.length > 0) {
res = rs.rows.item(0).value;
} else {
res = "Unknown";
}
})
return res
}
然后就可以在qml里调用了
import Qt 4.7
//引入storage.js,起个别名Storage,以供后面使用
import "storage.js" as Storage
Rectangle {
width: 360
height: 360
id: screen
Text {
id: textDisplay
anchors.centerIn: parent
}
Component.onCompleted: {
// 初始化数据库
Storage.initialize();
// 赋值
Storage.setSetting("mySetting","myValue");
//获取一个值,并把它写在textDisplay里
textDisplay.text = "The value of mySetting is:\n" + Storage.getSetting("mySetting");
}
}
分享到:
相关推荐
我们在用QT Quick的QML编写前端界面时,常常会用到前端SQLite数据库以保持本地的数据,此时你不需要用C++,直接用QML就可以了。 当编写完成代码后,你却不知道数据放在哪里了,实际上QT在你的代码完成后,会把数据库...
采用QT的前端界面QML框架,直接对本地数据库SQLite进行CURD操作;因采用QML技术,学员不需要懂得C++代码; 对数据输入的数据校验,采用了在数据输入框相同位置的出错信息提示,更加值观;对数据输入及数据展示,采用...
这个项目展示了如何在QT环境中集成SQLite数据库,为用户提供数据存储和查询的能力。以下是关于QT和SQLite数据库的关键知识点,以及如何在实际项目中应用它们。 1. **QT框架**: QT是一个跨平台的应用程序开发框架...
首先,我们需要在C++中创建一个QSqlDatabase对象,连接到SQLite数据库。这通常涉及到打开数据库文件、设置连接参数等步骤。例如: ```cpp QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); db.setDatabase...
【标题】中的“基于Qt和sqlite数据库实现的银行管理系统”是指使用Qt框架和SQLite数据库来构建的一个用于模拟银行日常业务的软件系统。Qt是一个跨平台的C++图形用户界面应用程序开发框架,它提供了丰富的API和工具,...
本项目着重讲解如何在STM32MP135上利用QT GUI进行SQLite数据库的读写操作,实现数据的可视化展示。 首先,我们要理解STM32MP135的特点。它集成了强大的CPU、浮点运算单元(FPU)以及丰富的外设接口,如GPIO、SPI、I2C...
在QML中,我们可以通过`QtSql.QSqlDatabase`对象建立与SQLite数据库的连接,并使用`QtSql.QSqlQuery`执行SQL语句,如创建表、插入、查询和更新数据。`colorstore`可能展示了如何在QML中创建一个模型来展示存储的颜色...
在本文中,我们将深入探讨如何使用Qt Quick QML(Quantum Meruit Language)来构建一个简单的应用程序,该程序涉及SQLite数据库的使用、TCP客户端-服务器通信以及串口通信。这是一份非常适合初学者的实践教程,它将...
Qt提供QSqlDatabase、QSqlQuery等类来操作SQLite数据库,我们可以在模型层中使用这些类进行数据库的连接、查询、插入、更新和删除操作。例如,用户注册时,可以将新用户的信息存储到数据库;登录时,从数据库中查找...
在iOS应用开发中,SQLite3是一个常用的轻量级数据库,它允许开发者存储和管理应用程序的数据。本教程将深入探讨SQLite3的基本操作,并演示如何将查询到的数据展示在UITableView上,这是iOS开发中常见的数据呈现方式...
在Qt中,可以使用SQL数据库模块(如SQLite、MySQL或PostgreSQL)来处理数据库操作。这些模块提供了连接、查询、事务等基本功能。单例模式常用于数据库连接管理,确保应用在整个运行期间只有一个数据库连接,避免资源...
在Android应用中,SQLite数据库常被用来持久化数据,存储结构化的信息。当需要将SQLite数据库中的数据展示在ListView上时,通常会涉及以下几个关键知识点: 1. **SQLite数据库操作**: - **创建数据库**:使用...
在IT行业中,Qt是一个广泛应用的跨平台开发框架,尤其在创建图形用户界面(GUI)应用程序...通过实践和学习这个例子,开发者可以掌握在桌面或移动应用中使用SQLite数据库的基本技巧,并能够灵活地应用于自己的项目中。
而SQLite则是一个轻量级的嵌入式数据库,无需独立服务器进程,可以直接在应用中使用,适合小型到中型规模的数据存储需求,如本例中的酒店管理系统。 在该酒店管理系统项目中,Qt的灵活性和SQLite的高效性得到了充分...
- **本地存储**:讨论如何使用本地存储机制,如SQLite数据库。 - ... (此处省略后续章节内容) 通过以上内容,读者可以系统地掌握QML的基本概念、核心技术和应用场景,从而能够更加熟练地运用QML进行各种复杂项目的...
该数据库课程大作业是基于Qt框架和SQLite数据库构建的一个可视化简易航班查询系统。Qt是一个跨平台的C++图形用户界面应用程序开发框架,广泛应用于桌面、移动和嵌入式设备的开发。SQLite则是一个轻量级的、开源的、...
这是 Light Media Scanner 的 QML 插件。... 该项目使用的查询依赖于 LMS 的 GENIVI 媒体管理器版本的数据库模式,其中包括数据库中的专辑封面。 请参阅此处: : 有关使用示例,请参阅 main.qml。
这篇文档将深入探讨Qt如何与SQLite3数据库进行交互,以及如何在开发过程中利用它们。 首先,让我们了解Qt是如何集成SQLite3的。Qt的Sql模块提供了与多种数据库系统的接口,其中包括SQLite3。要使用SQLite3,你需要...
- SQLite集成:在Qt中,可以使用QSqlDatabase模块直接连接和操作SQLite数据库,无需额外安装数据库服务器。 - SQL查询:通过QSqlQuery或其他相关类,执行CRUD(创建、读取、更新、删除)操作。 - 数据模型:Qt...