Qt Rechtsklick QPushButton
Bin ich mit Qt Creator erstellen einer gui für eine mineseeper Spiel.
Wie kann ich wissen, ein QpushButton geklickt mit der rechten Maustaste? für flag im Spiel.
In anderen Worten, das signal für einen Rechtsklick?
Sie wahrscheinlich benötigen, um ein überschreiben
Warum würde jeder eine -1 diese Frage?? Ja, es hätte mehr Anstrengungen, aber die Frage ist gut. Dank Muhammad für eine gute Antwort.
event()
und aussenden des Signals selbst.Warum würde jeder eine -1 diese Frage?? Ja, es hätte mehr Anstrengungen, aber die Frage ist gut. Dank Muhammad für eine gute Antwort.
InformationsquelleAutor KhoC | 2013-03-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erstellen Sie Ihren eigenen Buttons mit dem filter auf mousePressEvent slot.
qrightclickbutton.h
qrightclickbutton.cpp
Nun wie folgt verbinden
Erstellen Sie ein slot-in MainWindow.cpp.
Es funktioniert für mich!
QPushButton::mousePressEvent(e);
Ende überschriebenmousePressEvent(QMouseEvent *e)
InformationsquelleAutor Md. Minhazul Haque
Ich denke QPushButton ist intern umgesetzt, um die listen auf der linken Maus Klicks nur. Aber Sie können leicht erweitern QPushButton und neu zu implementieren lassen Sie uns sagen, dass die Maus loslassen Ereignis und Mach dein Ding, wenn die Rechte Maustaste gedrückt wurde, z.B. emittieren eine benutzerdefinierte
rightClicked()
signal zum Beispiel:... oder Sie erstellen eine überlastung des angeklickten signal weiterleitet Mouse-Zeiger, so dass Sie das gleiche tun können schauen Sie außerhalb der Schaltfläche.
Dann machst du die Prüfung in den Steckplatz, schließen Sie den button
clicked(QMouseEvent *)
signal und gehen Sie entsprechend vor.QPushButton
und es gibt keinebutton()
. was soll ich tun?Was??
button()
ist eine Methode derQMouseEvent
.also ich weiß nicht, wie kann ich
mouseReleaseEvent
. warum rufen SierightClicked()
immouseReleaseEvent
?da die
clicked
Ereignis tritt ein, wenn Sie drücken und dann die Taste loslassen. Auf diese Weise erhalten Sie das Standard-Verhalten - wenn Sie auf eine Schaltfläche klicken, aber die Maus bewegen, aus ihm heraus, bevor Sie loslassen - Sie nicht bekommen, ein klicken. Sie können individuell, nach Ihren Bedürfnissen, können Sie auch die mousePressEvent, wenn Sie mögen.Warum ruft nicht die Eltern
mouseReleaseEvent()
statt emittingclicked()
hier manuell?InformationsquelleAutor dtech
Schrieb ich dieses kleine Helfer-adapter, um alle vorhandenen button rechts anklickbar, keine Unterklasse:
Verwendung:
Ab jetzt die
clicked
signal wird ausgelöst, indem Sie die Rechte Maustaste sowie klicken Sie Links. Es gibt keine Notwendigkeit, löschen Sie dieses Objekt - es nutztui->pushButton
als Elternteil und wird automatisch gelöscht von Qt, wenn der Elternteil zerstört.Natürlich, Sie können schreiben 2 Zeilen code (wörtlich) um zu erklären, ein neues signal hier und geben das signal mit Rechtsklick statt
clicked
, wenn gewünscht.InformationsquelleAutor Violet Giraffe