Hover over QPushButton
-
Guten Tag mal wieder,
also ich habe eine Grafik in meinem Programm, die sich durch betätigen 4 übereinanderliegenden Buttons in die Richtung von diesen ausrichtet. Jetzt ist nur das jeweilige klicken nicht so schön und ich hätte gerne, dass sich die Grafik auch ausrichtet wenn ich einen der Buttons klicke und dann über die anderen mit der Maus fahre. Ist das in irgendeiner Form möglich?
Vielen Dank für eure Hilfe!
-
-
Hi @Jakobm789 ,
sicher QPushButton hat wie alle von QWidget abgeleiteten Klassen die Evente enterEvent und leaveEvententerEvent() is called when the mouse enters the widget's screen space. (This excludes screen space owned by any of the widget's children.) leaveEvent() is called when the mouse leaves the widget's screen space. If the mouse enters a child widget it will not cause a leaveEvent().
auf die kann man reagieren und entsprechenden Code ausführen
Um an das event zu kommen kannst du entweder die function überschreiben oder nen eventFilter installieren
-
-
@Jakobm789
https://en.cppreference.com/w/cpp/language/overrideEs zeigt, das du hier eine Funktion einer Grundklasse willentlich und bewusst überschreibst.
Es garantiert nen compile time error, when you versuchst eine nicht virtuelle Funktion zu überschreiben und die Warnung verschwindet, das du eine Funktion shadowst
-
@Jakobm789 Irgendwie scheine ich das nicht zu raffen:
void testcpp::enterEvent(QEvent *e) { myButton::enterEvent(e); qDebug() <<"Moin"; }
Funktioniert so nicht...
-
@Jakobm789 said in Hover over QPushButton:
myButton::enterEvent(e);
QPushButton::enterEvent(e);
if base class of your class is QPushButton.
This means you are calling the enterEvent from the base class of your class. -
@Jakobm789 Then change it to
QWidget::enterEvent(e);
-
@Jakobm789 Derived from QPushButton and implement it there and then use this instead of QPushButton.
-
@Jakobm789 Ist der Link von @J-Hilk nicht so ein Beispiel?
-
@jsulm Irgendwo schon, aber da wird ja einfach ein großer Button als Hintergrund quasi genutzt, ich habe in meiner UI 4 Buttons die jeweils unterschiedliche Funktionen auslösen sollen. Ich steig nicht durch wie ich das auf meinen Fall anwenden soll, ich bekomme auch einfach einen großen Button als Hintergrund und es wird immer gezählt wenn ich über diesen hovere.
-
@Jakobm789 said in Hover over QPushButton:
ich habe in meiner UI 4 Buttons die jeweils unterschiedliche Funktionen auslösen sollen
Ich verstehe das Problem nicht: implementiere deinen eigenen Button (abgeleitet von QPushButton) und benutze diesen so oft wie du willst genau so wie du QPushButton benutzen würdest. Was genau ist das Problem?
-
@Jakobm789 ok hier steige ich nochmal ein...
ein paar Fragen die zu klären sind:
- Hast du eine Klasse (.h & .cpp) in deinem Projekt, das ein abgeleiteter QPushButton ist?
- wie erstellst du diese 4 Buttons ? Über den Designer, über quell code?
- QuellCode von dir, wie es aussieht währe sehr, sehr hilfreich! Die Kristallkugel gibt nur bedingt viel Auskunft.
-
@J-Hilk Zu erstens: Ich versuche mich grade daran, hatte das Beispiel komplett missverstanden.
Zu zweitens: die 4 Buttons habe ich im GUI Designer erstellt.
Und zu drittens: Wenn ich es nicht hinbekomme gucke ich mal, dass ich meinen Code hier reinschicke.Danke für eure Hilfe!