我有一个可编辑的QComboBox。我用相关的用户数据添加了一些项目。
QComboBox *myCB = new QComboBox;
myCB->setEditable(true);
myCB->addItem("Item1", "1");
myCB->addItem("Item2", "2");
myCB->addItem("Item3", "3");
从组合框中选择项目时,我想获取其关联的用户数据 但是用户在组合框中键入了某些内容,我只想获取键入的字符串。
if (selected_from_combobox)
return myCB->itemData(myCB->currentIndex()).toString();
else if (typed_by_user)
return myCB->currentText();
如何区分两种情况?
答案 0 :(得分:0)
你必须使用这样的2个信号:
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
QComboBox *myCB = new QComboBox(this);
myCB->setEditable(true);
myCB->addItem("Item1", "1");
myCB->addItem("Item2", "2");
myCB->addItem("Item3", "3");
connect(myCB,SIGNAL(currentIndexChanged(int)),this,SLOT(indexChanged(int)));
connect(myCB,SIGNAL(currentTextChanged(QString)),this,SLOT(textChanged(QString)));
}