我想在 Android 上运行的 qt 应用程序中保存一些用户凭据。 我这样使用 QSettings:
QString appPath = QCoreApplication::applicationDirPath()+QLatin1Char('/');
set = new QSettings(appPath+"test",
QSettings::NativeFormat);
set->setValue ( "user/username", "NameOfTheUser" );
set->setValue ( "user/password", "UserPassword" );
set->sync();
我重新启动应用程序并在我拥有的 initialize() 方法中:
QString username(set->value("user/username",
( QVariant ) tr ( "defaultUser" ) ).toString());
QString password(set->value("user/password",
( QVariant ) tr ( "defaultPass" ) ).toString());
用户名和密码变量不是从 QSettings 中读取的。
相同的代码适用于 Windows。
谢谢
最佳答案
我也遇到了类似的问题,发现应该做两件事:
- 应指定设置文件的路径
- QSettings::sync() 应在每次设置更改后显式调用。
所以在 Windows 上我有这个工作:
QSettings settings("settings.ini", QSettings::IniFormat);
settings.setValue(GRID_ENABLED, enabled);
在 Android 上,我必须使用以下代码:
QSettings settings("/sdcard/settings.ini", QSettings::NativeFormat); //can be IniFormat, no difference
settings.setValue(GRID_ENABLED, enabled);
settings.sync();
可能使用“sdcard”不够好,你应该使用其他目录。
关于android - QSettings 在 Android 下的 Qt 上无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19368322/