QComboBox verbinden

Brauche ich eine Funktion aufzurufen, die mit currentIndex+1, wenn die currentIndex einer QComboBox änderungen. Ich habe Mühe mit der syntax an diesem morgen:

//call function readTables(int) when currentIndex changes.

connect(ui->deviceBox, SIGNAL(currentIndexChanged()),
   SLOT( readTables( ui->deviceBox->currentIndex()+1) );

Fehler: expected ')'
SLOT( readTables(ui->deviceBox->currentIndex()+1) );

Hinzufügen schließen ) funktioniert nicht...!

Schreiben Sie als connect(ui->deviceBox, SIGNAL(currentIndexChanged(int)), SLOT(readTables(int));. Die readTables(int) slot wird aufgerufen mit dem aktuellen index als argument.
Wenn Sie in der Qt-version 5+ und c++11, dann schreiben Sie connect(ui->deviceBox, SIGNAL(currentIndexChanged(int)), [this]( int idx ) { readTables( idx + 1 ); } );
Ich empfehle Ihnen, Lesen Sie die Qt Signals and Slots Dokumentation: qt-project.org/doc/qt-4.8/signalsandslots.html

InformationsquelleAutor Jocala | 2015-01-21

Schreibe einen Kommentar