QSettings、QSQLite 和 QJSON 分别是用于配置数据的存储方式。
- QSettings:QSettings 是一个跨平台的API,用于读取和写入平台无关的应用程序和系统设置。
QSettings settings("MySoft.ini", QSettings::IniFormat);
settings.beginGroup("MyApp");
settings.setValue("geometry", geometry);
settings.setValue("recentFiles", recentFiles);
settings.endGroup();
- QSQLite:QSQLite 是一个与数据库SQLite交互的Qt库。
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("MyDatabase.db");
if (!db.open()) {
qDebug() << "Database error occurred";
return;
}
QSqlQuery query;
query.exec("CREATE TABLE people (id INTEGER PRIMARY KEY, firstname VARCHAR(20), lastname VARCHAR(20))");
query.exec("INSERT INTO people VALUES(101, 'Danny', 'Young')");
QSqlQuery query;
query.exec("SELECT firstname, lastname FROM people WHERE id = 101");
while (query.next()) {
QString firstName = query.value(0).toString();
QString lastName = query.value(1).toString();
qDebug() << firstName << lastName;
}
- QJSON:QJson 是处理 JSON 数据的 Qt 库。
QJsonObject json;
json["name"] = "John Doe";
json["age"] = 30;
json["email"] = "johndoe@example.com";
QJsonDocument document;
document.setObject(json);
QString jsonString = document.toJson(QJsonDocument::Indented);
qDebug() << jsonString;
QJsonParseError parseError;
QJsonDocument jsonDoc = QJsonDocument::fromJson(jsonString.toUtf8(), &parseError);
if (parseError.error != QJsonParseError::NoError) {
qDebug() << "JSON parse error";
return;
}
if (jsonDoc.isObject()) {
QJsonObject jsonObj = jsonDoc.object();
qDebug() << jsonObj["name"].toString();
qDebug() << jsonObj["age"].toInt();
qDebug() << jsonObj["email"].toString();
}
以上代码分别展示了如何使用QSettings、QSQLite和QJSON来存储和读取数据。具体使用哪种方式,取决于您的具体需求,例如数据量大小、数据类型、是否需要跨平台等。