QSettings在Android下的Qt上不能正常工作

前端之家收集整理的这篇文章主要介绍了QSettings在Android下的Qt上不能正常工作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在我在 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相关文章