Hover over QPushButton
-
-
@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!
-
@Jakobm789 So jetzt funktioniert das ausgeben über den qDebug genau wie es soll. Jetzt noch eine Frage dazu: bekomme ich irgendwie übergeben, dass genau der Button mit dem Namen unter der Maus ist?
Vielen Dank für eure Geduld ihr habt mir echt weitergeholfen!
-
@Jakobm789 ok, da du deine Buttons mittels Designer gemacht hast, musst du diese "Promoten" zu der neuen unterklasse.
hier ist die offizielle Anleitung, wie man sowas macht:
https://doc.qt.io/archives/qt-4.8/designer-using-custom-widgets.html#promoting-widgetsanscheinend ist diese Erklärung aus der Qt5 Doku rausgenommen worden 🤔 oder ich finde es zumindest nicht. Ist aber weiterhin so gültig!