QSettingsのxml形式出力について



  • 表題の件で、質問させて頂きます。
    Qt経験はありますが、ブランクが2年あったため、感覚が掴めておりません。
    申し訳ありませんが、ご教示ください。
    ※ubuntu 14.04を使用しています。

    @bool writeSettingsXml(QIODevice &device, const QMap<QString, QVariant> &map)
    {
    QXmlStreamWriter xmlWriter(&device);
    xmlWriter.setAutoFormatting(true);
    xmlWriter.writeStartDocument();
    xmlWriter.writeStartElement("Settings");

    QStringList prev_elements;
    QSettings::SettingsMap::ConstIterator map_i;
    
    // Alle Elemente der Map durchlaufen
    for (map_i = map.begin(); map_i != map.end(); map_i++) {
        QStringList elements = map_i.key().split("/");
        int x = 0;
        // Zu schließende Elemente ermitteln
        while(x < prev_elements.size() && elements.at(x) == prev_elements.at(x)) {
            x++;
        }
    
        // Elemente schließen
        for(int i = prev_elements.size() - 1; i >= x; i--) {
            xmlWriter.writeEndElement();
        }
    
        // Elemente öffnen
        for (int i = x; i < elements.size(); i++) {
            xmlWriter.writeStartElement(elements.at(i));
        }
    
        // Wert eintragen
        xmlWriter.writeCharacters(map_i.value().toString());
        prev_elements = elements;
    }
    
    // Noch offene Elemente schließen
    for(int i = 0; i < prev_elements.size(); i++) {
        xmlWriter.writeEndElement();
    }
    
    xmlWriter.writeEndElement();
    xmlWriter.writeEndDocument();
    
    return true;
    

    }

    void main()
    {
    const QSettings::Format XmlFormat = QSettings::registerFormat("xml", &readSettingsXml, &writeSettingsXml);
    QSettings xml(XmlFormat, QSettings::UserScope, "organization", "application");

    xml.setValue("Place/Latitude", ui->lineLatitude->text().toFloat());
    xml.setValue("Place/Latitude", ui->lineLongitude->text().toFloat());
    

    }
    @
    上記のように処理をしたところ、writeSettingsXml関数内はXML形式に正常出力させているようですが、
    実際のファイルが見当たりません。
    正常に書けなかった場合でも、0バイトのファイルぐらいはあってもおかしくない気がするのですが、
    なぜ書かれないのでしょうか?



  • 自己解決しました。
    unixの場合、/home/[user name]/.config/organization/application.xmlでした。


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.