×
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 01:18.
179 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×