95

Qt では、メソッドを使用して selected texta のを取得できます。どうすれば入手できますか?QComboBoxcombobox->currentText()selected value

ヘルプを検索しましたが、currentData()期待どおりの方法が見つかりませんでした。しか見つけられなかったcombobox->currentIndex()

以外にそれを行うよりスマートな方法はありcombobox->itemData(combobox->currentIndex())ますか?

更新: これは Qt 5 では不要になりました。currentData()メソッドが追加されましたhttp://doc.qt.io/qt-5/qcombobox.html#currentData-prop

4

13 に答える 13

99

combobox->itemData(combobox->currentIndex())QComboBoxの現在のデータを取得したい場合は、行う必要があるようです。

QComboBox から派生した独自のクラスを使用している場合は、currentData()関数を追加できます。

于 2010-01-13T16:01:32.173 に答える
27

これは、現在のインデックスのテキストを取得できます。

QString cb = cbChoice ->currentText();
于 2013-01-21T07:58:36.437 に答える
24

すべてのアイテムに QVariant データを設定すると、必要なときに値を取得できます。

この状況のコード例があります。

ui.comboBoxSheetSize->addItem("128 m", QVariant(128));
ui.comboBoxSheetSize->addItem("256 m", QVariant(256));
ui.comboBoxSheetSize->addItem("512 m", QVariant(512));
ui.comboBoxSheetSize->addItem("1024 m", QVariant(1024));

...

void Page::onComboSheetSizeChanged( int index )
{
 int value = ui.comboBoxSheetSize->itemData(index).toInt();
}

ところで、私はあなたの質問を誤解したと思います。データを取得する方法は十分にスマートだと思いますか?

于 2010-01-13T13:39:29.953 に答える
11

この質問がされてから、メンバー関数 QComboBox::currentData が追加されました。このコミットを参照してください

于 2014-06-16T12:46:02.633 に答える
7

同じ問題がありました

私は解決しました

value = self.comboBox.currentText()
print value
于 2014-12-02T09:09:07.403 に答える
-1

私は問題を抱えていて、

QString str = m_UI->myComboBox->currentText();

これを解決しました。

于 2013-05-09T15:47:20.770 に答える
-5

最も簡単な方法はこれを行うことです:

uiAnalyseAssets::AnalyseAssets(QWidget *parent)
: QWidget(parent)
{
ui.comboBox->addItem("text1");
ui.comboBox->addItem("text2");

...
}

void mainFunction::yourFunction( int index )
{
 int value = ui.comboBox->currentText();
}
于 2011-03-27T23:03:04.800 に答える