bei editierbare ComboBox feststellen ob eintrag existiert

Alles rund um die Programmierung mit Qt
Antworten
katoon
Beiträge: 13
Registriert: 2. April 2008 13:47

bei editierbare ComboBox feststellen ob eintrag existiert

Beitrag von katoon »

Bei einer editierbaren Combox soll nach Bestätigung der Eingabe mit ENTER festgestellt werden ob dieser Eintrag existiert oder nicht und je nachdem eine Funktion ausgeführt werden. Allerdings sind meine Versuche bisher fehlgeschlagen.

Doppelte Einträge werden durch

Code: Alles auswählen

comboBox_listB->setDuplicatesEnabled (false);
garnicht erst zugelassen. Verbinde ich das activated Signal mittels

Code: Alles auswählen

connect( comboBox_listB, SIGNAL( activated( const QString & ) ), this, SLOT( FuncB( const QString & ) ) );
mit der Funktion FuncB soll in FuncB geprüft werden ob der Eintrag existiert, der im "lineEdit" der ComboBox eingegeben wurde.
Das Standardverhalten, das, falls der Eintrag nicht existiert, diesen sofort hinzufügt oder, falls er existiert, diesen eintrag zum aktuellen Eintrag macht, würde ich gern beibehalten.

Nun habe ich schon dies For Schleife in FuncB eingefügt aber so richtig will es nicht funktionieren.

Code: Alles auswählen

for(int i = 0; i <= comboBox_listB->count(); i++)
{
     if( comboBox_listB->text(i) == string )
     { 
          textLabel_test->setText(tr("existiert"));
          break;
     }
     else
     {
          textLabel_test->setText(tr("existiert nicht"));
          break;
     }
}
Da denk ich dieser Eintrag schon vorher hinzugefügt wird und dannach erst der connect Aufruf des activated Signal den Dienst tut.
In der Hilfe bin ich auf setEditText gestoßen werde aber nicht schlau draus.
vielleicht hat einer einen Tipp Danke...
Antworten