2010-01-09 22 views

Respuesta

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

Esto no funciona en qt4 – weberc2

18

La respuesta correcta podría ser la siguiente:

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

de hecho hay ninguna función coincidente para la llamada a

QtKeyEvent::QtKeyEvent(Type type, int key)

pero se encuentra:

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

+3

Debe ser Qt :: NoModifier no Qt :: NoModifiers. – Therefore

+2

Es importante simular un KeyPress seguido de KeyReleased porque hay objetos que procesan algo cuando se suelta la clave. Un ejemplo es un QWebView que ejecuta un JavaScript que maneja eventos keyUp. No se generarán a menos que publiques un evento KeyRelease. –

+0

También puede usar 'shareEvent' si prefiere que el' QKeyEvent' se asigne en la pila. –

Cuestiones relacionadas