ich habe die Methode mousePressEvent von QWidget für QLabel überladen. Der Grund dafür ist, dass ich in einem Dialog ein QLabel habe, welchem ich ein QPixmap beliebiger Groesse gebe. Dieses QPixmap wird einheitlich im Format 32x32 dargestellt, soll aber bei einem Klick darauf dieses in voller Größe erscheinen lassen, beispielsweise in 1024x768.
Leider gibt es aber auch noch einige andere QLabel in diesem Dialog, die nun ebenfalls bei einem Klick den Event auslösen und diese Methode aufrufen. Ich suche nun eine Möglichkeit zu bestimmen, welches QLabel angeklickt wurde.
Ich habe bereits folgendes versucht:
Code: Alles auswählen
void QLabel::mousePressEvent( QMouseEvent * event )
{
MeinDialog::zeigeVolleGroesse( this );
}
void MeinDialog::zeigeVolleGroesse( QLabel * label )
{
if( label == this->labelPixmap ) // labelPixmap ist das gewünschte QLabel
qDebug( " korrekt " );
else
qDebug( " daneben " );
}
Meine Fragen noch einmal in Kurzfassung:Fehler: Elementfunktion »void MeinDialog::zeigeVolleGroesse(QLabel*)« kann nicht ohne Objekt aufgerufen werden
- Wie kann ich bestimmen, welches QLabel angeklickt wurde?
- Bin ich mit dieser Strategie eigentlich auf dem richtigen Weg, oder gibt es eine elegantere Lösung mit einem Klick auf ein QPixmap dieses in voller Größe (vorzugsweise in einem eigenen Dialogfenster) dazustellen?
Gruß,
gelignite