Bonjour,
J'ai bien fouillé dans la doc, apparement ça ne semble pas être géré par Qt, ou bien je ne cherchais pas dans la bonne direction.
Le soucis : j'aimerais pouvoir déclencher une action sur l'appui de deux touches simultanément. Exemple :
Si j'appui sur la touche bas, et la touche gauche, j'aimerais pouvoir définir une action autre qu'un simple appui sur bas ou un simple appui sur gauche. J'ai pas mal travaillé avec Swing/Awt en java, il existait les MASK qui permettaient ceci, avec Qt je ne trouve pas d'équivalent.
Voici un exemple du code :
Les variables passées en parametre sont des constantes que j'ai définis, le code présenté étant assez simpliste le commenter n'apporterait guère plus. Donc en gros là les 4 premieres conditions ne fonctionnent pas évidemment, et j'aimerais savoir comment faire l'équivalent que ce qu'elles sous entendent ( pas facil à exprimer héhé ).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 void BattleField::keyPressEvent(QKeyEvent *event) { if(event->key() == Qt::Key_Down && event->key() == Qt::Key_Left)//Ce que j'aimerais pourvoir écrire ! //todo: else if(event->key() == Qt::Key_Down && event->key() == Qt::Key_Right) movePlane(BOTTOM_RIGHT); else if(event->key() == Qt::Key_Up && Qt::Key_Left) movePlane(TOP_LEFT); else if(event->key() == Qt::Key_Up && Qt::Key_Right) movePlane(TOP_RIGHT);*/ else if(event->key() == Qt::Key_Left) emit moveAsked(LEFT); else if(event->key() == Qt::Key_Right) emit moveAsked(RIGHT); else if(event->key() == Qt::Key_Up) emit moveAsked(UP); else if(event->key() == Qt::Key_Down) emit moveAsked(DOWN); }
Voili voila, j'offre 10 lignes de code supplémentaire à celui qui me dépanne ! ( je plaisantes :p ).
Askerat.
Partager