Hover over QPushButton
-
@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!
-
-
@Christian-Ehrlicher Okay soweit verstanden(hoffentlich), Danke! Jetzt nochmal zurück zu meiner Frage: Kann ich irgendwie in dem Hoverevent einen Returnwert unterbringen oder sonst irgendwie in der Hauptkasse abfragen ob gehovert ist? Sonst bring der Ganze Krims Krams ja nichts , oder?
-
@Jakobm789 said in Hover over QPushButton:
Kann ich irgendwie in dem Hoverevent einen Returnwert unterbringen oder sonst irgendwie in der Hauptkasse abfragen ob gehovert ist?
Du kannst doch einfach eine Membervariable im Event setzen:
void testcpp::enterEvent(QEvent *e) { QPushButton::enterEvent(e); entered = true; }
-
@Jakobm789 said in Hover over QPushButton:
Hauptcode
Was verstehst du darunter? In der selben Klasse? In einer anderen?
Ich empfehle wirklich mal ein Buch über C++ zu lesen.
-
der Qt Weg wäre über ein Signal im der CustomButton Klasse das du im "HauptCode" abfängst, habe das Beispiel mal entsprechend angepasst.
Aber die anderen haben recht. Qt ist eine "Erweiterung" ein framework für C++ Grundlegende Sachen solltest du in reinem C++ üben und verstehen.
C++ ist keine einfach Sprache zu lernen, aber sie hat eine Reihe von Vorteilen 😉, und Qt an sich legt nochmal eine Komplexitätschicht oben drauf.
Ich würde empfehlen die Beispiele die mit Qt kommen, die einfachen zumindest, dir anzuschauen und versuchen zu verstehen was gemacht wurde.
-
@Jakobm789 Nur schmeißt er mir jetzt einen connect Error in der qobject.h aus.
C:\Qt\Qt5.12.9\5.12.9\mingw73_32\include\QtCore\qobject.h:262: Fehler: no matching function for call to 'QObject::connect(const Object*&, void (HoverButton::*&)(bool), const Object*&, void (Joystick::*&)(bool), Qt::ConnectionType)' return connect(sender, signal, sender, slot, Qt::DirectConnection); ^
Jemand nen Plan woran das liegen kann?
-
@Jakobm789 Zeige bitte deinen connect Aufruf...
-
@Jakobm789 Das kann nicht das connect sein, welches die Fehlermeldung verursacht hat.
Und dieses connect ist auch falsh, da der Empfänger fehlt.
Bitte https://doc.qt.io/qt-5/signalsandslots.html lesen! -
@jsulm Ja Stimmt es hat ein this gefehlt, es war aber dieses connect, da durch diese Verbesserung krinr Fehler mehr ausgegeben werden. Danke!
QObject::connect(ui->AccelerationLevelButton, &HoverButton::mouseEntered, this, &Joystick::receivingFunction);