在可编辑的QComboBox中区分编辑和选择

时间:2016-10-28 21:09:19

标签: qt

我有一个可编辑的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();

如何区分两种情况?

1 个答案:

答案 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)));
}