名前とユーザリストを持ついくつかのグループを含むXMLファイルがあります。 ReadConfig();
QMapの項目が失われる
void AppConfig::ReadConfig(void)
{
...
while(!reader.atEnd())
{
ReadGroups(reader);
if (dictGroups.isEmpty()) qDebug()<<"ReadConfig_isEmpty";
}
...
これは次のとおりです。私は、ファイルを読み込むその後
public:
QMap<QString, QList<QString>> dictGroups;
として、それが宣言されているHEADERFILEで
dictGroups= QMap<QString, QList<QString>>() ;
:コンストラクタでの私のコードでは、私はこのリストのための辞書を設定しています私のReadGroups:
void AppConfig::ReadGroups(QXmlStreamReader &reader)
{
dictGroups.clear();
while(!reader.atEnd())
{
reader.readNext();
if (reader.error())
{
...
}
else
{
if (reader.isStartElement())
{
if (reader.name().toString().toLower()=="group"){
ReadGroup(reader);
if (dictGroups.isEmpty()) qDebug()<<"ReadGroups_isEmpty";
}
}
else if (reader.isEndElement())
{
if (reader.name().toString().toLower() == "groups")
{
if(dictGroups.count()<=0){
QList<QString> users= QList<QString>();
users.append(this->GetUsername());
dictGroups.insert("admin", users);
}
return;
}
}
}
}
}
私の問題は、ReadGroupsが失われる間にdictGroupsに挿入された項目です。私はReadConfig_isEmpty
が、ReadGroupsでは、すべてがOKであると思われるデバッグ出力に
を取得します。 私は何時間も困惑していますが、誰かがその理由を見つけるのを助けることができますか?
「dictGroups」に何かを挿入することは絶対に肯定的ですか? – thuga
はい:-(私のデバッグではメッセージが挿入され、ReadGroups_isEmptyは書き込まれません。また、このステップでは空ではないため、dictが空の場合は 'admin' -userを挿入しません。 –
難しい – thuga