×
Namespaces

Variants
Actions

Qt和S60环境设置管理比较

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

兼容于
平台: S60 3rd Edition FP2, S60 5th Edition
Symbian

文章
关键词: QSettings
翻译:
dougcn
最后由 hamishwillee 在 11 Oct 2012 编辑
* TSQ001327

概述

本文给出Symbian OS和Qt之间环境配置管理的比较。下面也给出了创建、设置和获取环境设置值的样例代码。

描述

在Symbian和Qt中,环境设置都是以键/值对的形式储存。然而二者的环境设置文件保存路径是不同的。

操作 S60/Symbian OS Qt
环境设置机制 中央仓库 Conf文件
键的创建 通过xls或confml预先定义环境设置键,并被赋予缺省值。 环境设置从应用程序动态创建,并储存在.conf文件中。
环境配置文件的存储格式 平台创建.cre文件,应用程序在这个文件中储存/恢复环境值。.cre文件不是人类可读的格式。 不生成.cre文件。直接存储在人类可读的.conf文件。
环境配置键的组织 环境配置无层次结构 可在键中维护层次结构。例如:所有从属于UI的环境配置可作为子键放在主UI键下。
访问以平台相关格式储存的环境设置 可访问平台或其它应用程序环境设置,因为所有的配置都是.cre格式。 通过扩展类如XQSettingsManager可访问储存在中央仓库的键/值。
CRepository QSettings
创建环境配置类的实例 CRepository::NewL QSettings settings("CompName", "AppName"); 含有 CompName 的目录将被创建,且conf文件创建于该目录,名称为 AppName
设置值 CRepository::Set QSettings::setValue
获取值 CRepository::Get QSettings::value
环境设置改变通知 是可行的,借助 CCenRepNotifyHandler 无直接类检测 QSettings 键值的变化。通过 XQSettingsManager 及其关联类来检测cenrep键变化是可行的。


方案

在Qt应用中,你可以或者使用 QSettings ,或者继续使用 cenrep (通过 CRepository 类或更好的移动扩展Archived:Mobile Extensions#13. Settings Manager API)。 QSettings 类提供了平台无关的持久化机制。

下例演示了在Qt中环境设置的创建:

 MyApplication::MyApplication(QWidget *parent)
: QWidget(parent)
{
//The company name and application name need to be passed as a parameter.
//The path of storing the settings is based on these input parameters
QSettings setting(“Company", "MyApplication");
//Setting an int value
QVariant value = 10; //or we can also assign int value = 10
setting.setValue("
Engine/TimeOutPeriod", value);
//Setting a string value
QString string (“This is sample”); //or we can also assign QVariant string(“This is sample”)
setting.setValue(“Engine/MessageTitle”, string);
//Getting an int value;
int settingval = setting.value("
Engine/TimeOutPeriod ").toInt();
//Getting a string value
QString title = setting.value("
Engine/MessageTitle ").toString();
}
This page was last modified on 11 October 2012, at 04:18.
189 page views in the last 30 days.