配置文件在Qt中被覆盖 我正在创建一个配置文件,其中存储特定用户的用户名、密码和角色。我正在使用以下代码。 void主窗口::OnAssignButtonClicked() { QSettings设置(“/root/configFile.ini”,QSettings::ini格式); QString用户名=lineEditUsername.text(); QString password=lineEditPassword.text(); QString角色=comboBox.currentText(); QList列表用户名; QList-listPassword; QList列表角色; QVariantMap用户密码映射; QVariantMap用户角色映射; listUsername

配置文件在Qt中被覆盖 我正在创建一个配置文件,其中存储特定用户的用户名、密码和角色。我正在使用以下代码。 void主窗口::OnAssignButtonClicked() { QSettings设置(“/root/configFile.ini”,QSettings::ini格式); QString用户名=lineEditUsername.text(); QString password=lineEditPassword.text(); QString角色=comboBox.currentText(); QList列表用户名; QList-listPassword; QList列表角色; QVariantMap用户密码映射; QVariantMap用户角色映射; listUsername,qt,ini,Qt,Ini,每次单击“分配”按钮时,都会创建新映射,将用户、密码和角色存储在其中,并将该列表保存到配置文件中 缺少的是在修改现有映射之前读取它们。 而不是 QVariant variantPassword = settings.value("Password"); QVariant variantRole = settings.value("Password"); QVariantMap mapPassword = variantPassword.value<QVariantMap>();

每次单击“分配”按钮时,都会创建新映射,将用户、密码和角色存储在其中,并将该列表保存到配置文件中

缺少的是在修改现有映射之前读取它们。 而不是

 QVariant variantPassword = settings.value("Password");
 QVariant variantRole = settings.value("Password");
 QVariantMap mapPassword = variantPassword.value<QVariantMap>();
 QVariantMap mapRole = variantRole.value<QVariantMap>();
 QMapIterator<QString, QVariant> iteratorPassword(mapPassword);
 QMapIterator<QString, QVariant>iteratorRole(mapRole);
  while (iteratorPassword.hasNext()) 
  {
      iteratorPassword.next();
      QString user = iteratorPassword.key();
      QString pass = iteratorPassword.value().toString();
      iteratorRole.next();
      QString role = iteratorRole.value().toString();   
   }
做:

这应该是

QVariant variantRole = settings.value("Password");

每次单击“分配”按钮时,都会创建新映射,将用户、密码和角色存储在其中,并将该列表保存到配置文件中

缺少的是在修改现有映射之前读取它们。 而不是

 QVariant variantPassword = settings.value("Password");
 QVariant variantRole = settings.value("Password");
 QVariantMap mapPassword = variantPassword.value<QVariantMap>();
 QVariantMap mapRole = variantRole.value<QVariantMap>();
 QMapIterator<QString, QVariant> iteratorPassword(mapPassword);
 QMapIterator<QString, QVariant>iteratorRole(mapRole);
  while (iteratorPassword.hasNext()) 
  {
      iteratorPassword.next();
      QString user = iteratorPassword.key();
      QString pass = iteratorPassword.value().toString();
      iteratorRole.next();
      QString role = iteratorRole.value().toString();   
   }
做:

这应该是

QVariant variantRole = settings.value("Password");

您是否读取过这些值,我只看到您将其设置为true,缺少QSettings::value();用于读取它们的调用我已添加了用于读取值的代码。我在其他插槽中读取了这些值。当某个用户尝试登录时使用它。您是否读取过这些值,我只看到您将其设置为true,缺少QSettings::value();调用读取值我添加了读取值的代码。我在不同的插槽中读取值。当某个用户尝试登录时使用。
QVariant variantRole = settings.value("Password");
.value("Role");