Hallo,
ich benutzen den QtCreator und benutze ein QLabel um ein Bild anzuzeigen. Nun möchte ich die mouseMoveEvent Funktion benutzen um die Position der Maus und den Grauwert des Pixels im Bild anzuzeigen.
Normal erstellt man eine neue Klasse, lässt sie von QLabel erben und überschreib die mouseMoveEvent Funktion.
Nur habe ich ein QLabel im Form Editor, also ui->label. Wie überschreibe ich denn nun Funktionen von diesem Objekt?
Eine Alternative wäre sich ein Plugin zu schreiben und dieses im Formeditor zu plazieren. Das habe ich auch schon gemacht, nur ist eben etwas umständlich.
Gruss
[gelöst] Wie Event Funktionen von QLabel überschreiben
[gelöst] Wie Event Funktionen von QLabel überschreiben
Zuletzt geändert von kater am 14. Januar 2010 18:23, insgesamt 1-mal geändert.
Installiere nen Eventfilter für das Label. In der eventFilter Methode bekommst dann object und event und kannst entscheiden wie du es behandelst a la
Code: Alles auswählen
if (object == meinLabel && event->type() == QEvent::MouseMove)
{
//do it
}Ok, hab ich gemacht, funktioniert.
Um das etwas allgemeiner zu halten. Wenn ich mehre QLabels aka Bilder habe und bei verschiedenen Events verschiedene Funktionen habe müsste ich entweder mir immer eine neue Klasse bauen, ein Objekt erstellen und dann als EventFilter installieren, oder ich baue einen EventFilter der mir die Events auseinander nimmt und die jeweilige Funktion aufruft.
Ich schätze das letztere ist jetzt der wohl beste Weg? Mit weniger Aufwand geht es wohl nicht.
Um das etwas allgemeiner zu halten. Wenn ich mehre QLabels aka Bilder habe und bei verschiedenen Events verschiedene Funktionen habe müsste ich entweder mir immer eine neue Klasse bauen, ein Objekt erstellen und dann als EventFilter installieren, oder ich baue einen EventFilter der mir die Events auseinander nimmt und die jeweilige Funktion aufruft.
Ich schätze das letztere ist jetzt der wohl beste Weg? Mit weniger Aufwand geht es wohl nicht.