android - QSettings 在 Android 下的 Qt 上无法正常工作

标签 android qt qsettings

我想在 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。
谢谢

最佳答案

我也遇到了类似的问题,发现应该做两件事:

  1. 应指定设置文件的路径
  2. 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/

相关文章:

c++ - Qt - 将 QString 路径保存到注册表中的 QSettings

Java String.Split 拆分大家

java - android OpenCV中的卡通效果(需要从灰色转换为彩色)

android - 在 Android 的警报对话框中调整编辑框的大小

qt - PyQT 找不到任何 SQL 驱动程序

c++ - 合并两个 QPixmap 的问题

android - 如何在Android中绘制贝塞尔曲线

Qt Creator 支持 C++11 IDE?

c++ - 如何运行在启动时运行的 Qt 应用程序?

c++ - 如何使用 QSettings 将 QString 添加到注册表