XML からリストへの自動変換はありません。これは主に、XML が任意の構造を持つ可能性があるためです。XML を解析してモデルに入力するために使用できるQXmlStreamReaderクラスがあります。
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);
...
モデル ctor を (たとえば、QStringListModelを使用して) 使用することをお勧めします。たとえば、何らかの構成に基づいて別の XML ファイルからのデータをコンプリータに入力する場合はclear()
、モデルを簡単に再入力できるためです。QCompleter
複数のインスタンス間で同じモデルを共有することもできます。