アップデート
void MainWindow::readXml()
{
QDomDocument Champions;
QFile xmlFile("champions.xml");
xmlFile.open(QIODevice::ReadOnly);
Champions.setContent(&xmlFile);
QDomElement root = Champions.firstChildElement();
QDomNodeList ChampionNames = root.elementsByTagName("Champion");
for(int i = 0; i < ChampionNames.count(); i++)
{
QDomNode championNode = ChampionNames.at(i);
if(championNode.isElement())
{
QDomElement Champion = championNode.toElement();
ui->comboBox->addItem(Champion.attribute("Name"));
}}}
なんとかこのようなものを手に入れることができたので、私は今コンボボックスに名前を入れました:)
私はこのコミュニティに不慣れなので、皆さんにお会いできてうれしいです!
まず、私はQtプログラミングにかなり慣れていないことをお知らせしたいと思いますが、学校では基本的なc ++のレッスンをいくつか受けましたが、それはコンソールプログラミングだけであり、そのようなものに取り組んだことはありません。なぜQtを始めたのですか?それは私には簡単に見えました、そしてそれはビジュアルスタジオと比較されました!これが私の問題です。
基本的に、私は自分の "Name =" ""属性を読み取るコンボボックスを持っています。約100は、おそらく少し少なく、もう少し多くはまだわかりません。私はこれまでそのようなことをしたことがないので、これをすべて始める方法がわかりません。基本的に、コンボボックスで「名前」を選択するときにソフトウェアに実行させたいのは、すべての属性( "Q" "W" "E" "R")を4つのラベルに印刷することです。私が追加した小さな画像を参照してください。
最初にファイルをいくつかの文字列配列またはデータ構造に読み込む必要があるかどうかはわかりません。XMLファイルでComboBoxで選択されている「名前」を検索し、それを何らかの方法で印刷する必要がありますか?私はこれにしばらく時間を費やしましたが、私が望むことを達成する方法を見つけることができません。私はこれに慣れていないので、特にComboBoxを使用していくつかのコード例を実際に適用します。
画像がぼやけている場合、XMLファイルは次のようになります。
<ROOT>
<Champ Name="XXX1">
<Q>QQ1</Q>
<W>WW1</W>
<E>EE1</E>
<R>RR1</R>
</Champ>
<Champ Name="XXX2">
<Q>QQ2</Q>
<W>WW2</W>
<E>EE2</E>
<R>RR2</R>
</Champ>
</ROOT>
私は物事を説明するのが本当に苦手なので、あなたが私をよりよく理解できるように、ペンを使って小さなイラストを作りました:)
よろしくお願いします!私の質問が十分にはっきりしていることを願っています。すてきな一日を。