2016-10-28 2 views
0

Ich habe eine editierbare QComboBox. Ich füge einige Elemente mit zugehörigen Benutzerdaten hinzu.Unterscheiden zwischen bearbeiteten und ausgewählten in bearbeitbaren QComboBox

QComboBox *myCB = new QComboBox; 
myCB->setEditable(true); 
myCB->addItem("Item1", "1"); 
myCB->addItem("Item2", "2"); 
myCB->addItem("Item3", "3"); 

Wenn ein Element aus dem Kombinationsfeld ausgewählt ist, mag ich ihre zugeordneten Benutzerdaten Aber Benutzertypen in etwas in die Combo-Box bekommen, ich möchte nur die eingegebene Zeichenfolge erhalten.

if (selected_from_combobox) 
    return myCB->itemData(myCB->currentIndex()).toString(); 
else if (typed_by_user) 
    return myCB->currentText(); 

Wie kann ich zwischen zwei Fällen unterscheiden?

Antwort

0

Sie haben 2-Signale wie folgt zu verwenden:

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))); 
} 
+0

Dank. Das hat funktioniert. – PdxEngineer

Verwandte Themen