Seite 1 von 1

[gelöst] Innerhalb eines Mouseevents eine Taste abfragen

Verfasst: 6. Juli 2007 13:27
von CSchirner
Hallo,

ich hab etz mal das Forum hier durchsucht und leider keine passenden Ansätze gefunden, die mir weiterhelfen würden...

Ich hatte ein Beispiel gesehen, indem man ein Flag setzt wenn die Taste gedrückt ist... Doch anscheinend will meine vom QLabel vererbte Klasse nichts von einen keyClick/Press/Event was wissen....

Gibt es noch andere möglichkeiten einen Tastendruck abzufragen?

Ich möchte beim Mouseevent "Click" prüfen, ob STRG gedrückt wird.. (Key_Control) um dann das Label mit "Close" zu löschen...

Wenn jemand dazu eine geschickte idee hätte, wäre es nett wenn er mir die mitteilen könnte


Vieeeelen Dank schonmal im Vorraus

Mit freundlichen Grüßen
Christopher Schirner

Re: Innerhalb eines Mouseevents eine Taste abfragen

Verfasst: 6. Juli 2007 14:50
von macman
Doku lesen. Bei QMouseEvent gibt es auch modifiers.

Verfasst: 6. Juli 2007 14:50
von CaptnChaos
hm, spontan fällt mir auch nix leichteres als diese ein:
void QWidget::keyPressEvent ( QKeyEvent * event ) [virtual protected]
This event handler, for event event, can be reimplemented in a subclass to receive key press events for the widget.
A widget must call setFocusPolicy() to accept focus initially and have focus in order to receive a key press event.
If you reimplement this handler, it is very important that you ignore() the event if you do not understand it, so that the widget's parent can interpret it.
The default implementation closes popup widgets if the user presses Esc. Otherwise the event is ignored.
See also keyReleaseEvent(), QKeyEvent::ignore(), setFocusPolicy(), focusInEvent(), focusOutEvent(), event(), QKeyEvent, and Tetrix Example.
int QKeyEvent::key ()
und
Qt::Key_Control
PS. Wenn das dein Problem löst, bitte ich dich anstatt nur die Leute im Forum auch mal deinen Qt Assistant zu bemühen.

Verfasst: 6. Juli 2007 15:04
von NoobSaibot
wie macman schon sagte es gibt da noch die

Code: Alles auswählen

modifiers()
methode.