Как я могу имитировать взаимодействие с пользователем (событие нажатия клавиши) в Qt? - PullRequest
24 голосов
/ 10 января 2010

Мне нужно смоделировать событие ввода "Enter" в Qt. Как я могу это сделать?

Ответы [ 2 ]

22 голосов
/ 23 января 2012

Правильный ответ может быть следующим:

QKeyEvent *event = new QKeyEvent ( QEvent::KeyPress, Qt::Key_Enter, Qt::NoModifier);
QCoreApplication::postEvent (receiver, event);

на самом деле нет соответствующей функции для вызова

QtKeyEvent::QtKeyEvent(Type type, int key)

но есть:

QtKeyEvent::QtKeyEvent(Type type, int key, Qt::KeyboardModifiers modifiers)

22 голосов
/ 10 января 2010
QKeyEvent *event = new QKeyEvent ( QEvent::KeyPress, Qt::Key_Enter);
QCoreApplication::postEvent (receiver, event)
...