QSettings的使用,会在注册表内生产相关数据。(显性设置ini处理外)
1. 直接使用时:
QSettings settings;
QString str1= settings.organizationName(); // 返回空
QString str2= settings.applicationName();// 返回exe名称
此时会读取不到注册表里的信息。
2. 带参数构造时(第一个参数表示组织名称,二个参数表示应用名称)
QSettings settings("Google","Chrome");
QString str1= settings.organizationName(); // 返回Google
QString str2= settings.applicationName();// 返回Chrome
QString str3= ssd.value("BLBeacon/version", QVariant("1.0.01")).toString();// 返回96.0.4664.45
3. 不带参数构造,Application设置组织和应用名称
QCoreApplication::setOrganizationName("Google");
QCoreApplication::setApplicationName("Google");
QSettings settings;
QString str1= settings.organizationName(); // 返回Google
QString str2= settings.applicationName();// 返回Chrome
QString str3= ssd.value("BLBeacon/version", QVariant("1.0.01")).toString();// 返回96.0.4664.45
使用组织名称和应用程序名称作为参数创建QSettings对象,可以访问应用程序的设置(在注册表中)。
QSettings使用时可以用分组,也可以通过格式化的字符串。例如
QSettings settings;
settings.beginGroup("Geometry"); // 分组方式
int nWidth = settings.value("Width", 66).toInt();
settings.endGroup();
nt nWidth = settings.value("Geometry/Width", 66).toInt();// 格式化的字符串方式。