Je dois simuler l'événement clé "Entrée" dans Qt. Comment puis-je faire ceci?Comment puis-je simuler l'interaction de l'utilisateur (événement de presse de touche) dans Qt?
Répondre
QKeyEvent *event = new QKeyEvent (QEvent::KeyPress, Qt::Key_Enter);
QCoreApplication::postEvent (receiver, event)
La bonne réponse est peut-être ceci:
QKeyEvent *event = new QKeyEvent (QEvent::KeyPress, Qt::Key_Enter, Qt::NoModifier);
QCoreApplication::postEvent (receiver, event);
en fait il n'y a pas de fonction concordante pour appel à
QtKeyEvent::QtKeyEvent(Type type, int key)
mais il y a:
QtKeyEvent::QtKeyEvent(Type type, int key, Qt::KeyboardModifiers modifiers)
Devrait être Qt :: NoModifier pas Qt :: NoModifiers. – Therefore
Il est important de simuler un KeyPress suivi d'un KeyReleased car il y a des objets qui traitent quelque chose quand la clé est relâchée. Un exemple est un QWebView exécutant un JavaScript qui gère les événements keyUp. Ils ne seront générés que si vous publiez un événement KeyRelease. –
Vous pouvez également utiliser 'shareEvent' si vous préférez que le' QKeyEvent' soit alloué sur la pile. –
Cela ne fonctionne pas dans qt4 – weberc2