XMLからリストへの自動変換はありません。ほとんどの場合、XMLは任意の構造を持つことができるためです。 QXmlStreamReaderクラスがあり、これを使用してXMLを解析してモデルを生成できます。 XMLを想定し
が
<keywords>
<keyword>Foo</keyword>
<keyword>Bar</keyword>
</keywords>
のようになります次に、あなたはそれを解析するために行のカップルを必要とする:
QXmlStreamReader reader(xmlFileName);
QStringList keywords;
while (!reader.atEnd()) {
// parse next token
reader.readNext();
// is this an opening "keyword" tag?
if (reader.isStartElement() && reader.name() == QLatin1String("keyword")) {
// add its value to the list
keywords.append(reader.text().toString());
}
}
auto completer = new QCompleter(keywords, lineEdit);
...
あなたは(QStringListModelで例えば)モデルのctorを使用する可能性がある場合clear()
を簡単に作成して再度モデルを再作成することができるため、たとえば、いくつかの設定に基づいて、異なるXMLファイルのデータをコンプリータに取り込みたいとします。複数のQCompleter
インスタンス間で同じモデルを共有することもできます。
ヒントありがとうございます!私はこれのようにそれを試してみます。 – Sikarjan