如何从QCombobox中获取所选的VALUE?

sab*_*our 79 qt qcombobox

在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

Pat*_*ola 78

combobox->itemData(combobox->currentIndex())如果你想获得QComboBox的当前数据,似乎你需要做.

如果您使用从QComboBox派生的自己的类,则可以添加一个currentData()函数.

  • 谢谢。我只是在程序中使用了这个技巧。 (2认同)

lit*_*758 24

这个可以得到当前索引的文本:

QString cb = cbChoice ->currentText();
Run Code Online (Sandbox Code Playgroud)

  • 这有什么帮助?`currentText` 是 OP 已经知道的...... (4认同)

ufu*_*gun 20

您可以为所有项目设置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();
}
Run Code Online (Sandbox Code Playgroud)

顺便说一句,我想我误解了你的问题.我认为你获取数据的方式足够聪明?


joa*_*erl 11

自提出此问题以来,已添加成员函数QComboBox :: currentData,请参阅此提交


jat*_*tin 6

我有同样的问题

我已经解决了

value = self.comboBox.currentText()
print value
Run Code Online (Sandbox Code Playgroud)

  • 那是标签文本,而不是值。 (2认同)