1

エディターを開くとき、およびエディターで更新する必要がある特定のデータをロードするときに、comboBox 内の特定の項目を選択したいと思います。コンボボックスが期待どおりに動作しません!

ウィンドウを開いたときに特定のアイテムを選択するための次の行があります。

normBox = new QComboBox(page1);
gridBox->addWidget(normBox, 2, 1, 1, 1);
QStringList normsLst;
normsLst.append(tr("sum"));
normsLst.append(tr("maxF"));
normsLst.append(tr("sumF"));
setComboBoxItems(normsLst, m_normBox);
m_normBox->setCurrentIndex(0);

しかし、エディターを作成すると、最初のアイテム「Sum」がコンボボックスに表示されません。

次に、「ロード」関数を実装しました。この関数は、保存されたデータをインターフェイスにロードし、最後にリフレッシュします。

normBox->setCurrentIndex(model->getNormIdx());

ここで、モデルには正確なメンバー normIdx があります。

Qtを使用してコンボボックスで正しい選択を行うにはどうすればよいですか?

4

1 に答える 1

6

コンボボックスを作成してから、別のコンボボックスの現在のインデックスを設定することはありませんか?

normBox = new QComboBox(page1);
...
m_normBox->setCurrentIndex(0);

とは何setComboBoxItems(normsLst, m_normBox)ですか?Qt のドキュメントには、この関数 (引数が 2 つ) が見つかりませんでした。

このコードは動作するはずです:

QComboBox* combo = new QComboBox;

QStringList list;
list << "sum" << "maxF" << "sumF";

combo->addItems(list);
combo->setCurrentIndex(0);
于 2012-07-20T11:48:04.473 に答える