QComboBox & Signal / Trigger

Verschiedenes zu Qt
Antworten
ape
Beiträge: 44
Registriert: 5. Dezember 2007 15:07

QComboBox & Signal / Trigger

Beitrag von ape »

Hallo,

finde leider keine entsprechende Funktion in der Doku zu QComboBox, daher auf diesem Weg.

Ist es möglich mit dem Öffnen einer QcomboBox etwas zu triggern ?

d.h. sobald jmd die QComboBox mit der Maus oder Cursor/Tab aktiviert bzw aufklappt, eine Funktion auszuführen ?

Code: Alles auswählen

interfaceComboBox = new QComboBox(configureConnectionBox);
interfaceComboBox->setObjectName(QString::fromUtf8("interface"));
interfaceComboBox->setStatusTip(QString::fromUtf8("Select your interface of choice here."));       
interfaceComboBox->setToolTip(QString::fromUtf8("Select your interface of choice here."));   
interfaceComboBox->setGeometry(QRect(12,25,100,20));                                
connect(interfaceComboBox, SIGNAL(clicked()), this, SLOT(openInterfaceSelector())); 
Alternative Ideen ?


Grüße
ape
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Du könntest einen Eventfilter in deiner ComboBox installieren und das mousePressEvent abfangen. Dann kannst du damit machen was du willst ;)

edit:
Hier ein Link:
http://doc.trolltech.com/4.3/eventsandfilters.html

Oder du kannst von QComboBox ableiten und mousePressEvent überschreiben und dein triggerd() emittieren.

Suchs dir aus...
ape
Beiträge: 44
Registriert: 5. Dezember 2007 15:07

Beitrag von ape »

danke franzf für die Ideen
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Ich denke, daß es fast sinnvoller ist, daß showEvent der view view abzufragen.
ape
Beiträge: 44
Registriert: 5. Dezember 2007 15:07

Beitrag von ape »

wie wäre die folgende Idee:
--
re-implementierung von QComboBox::showPopup()


dann könnte ich doch sowas machen:

Code: Alles auswählen

void MainWindow::showPopup()
{
// re-Init-Section der Schnittstellen
// ....
// ....
// end- re-Init Section

QComboBox::showPopup();
} 
brauchbare idee ?
Antworten