2010-01-09 3 views

답변

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

Qt4에서 작동하지 않습니다. – weberc2

18

정답이 될 수 있습니다

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)

+3

Qt :: NoModifier가 Qt :: NoModifiers가 아니어야합니다. – Therefore

+2

키를 놓을 때 무언가를 처리하는 객체가 있기 때문에 KeyRece에 이어 KeyPress를 시뮬레이트하는 것이 중요합니다. 예를 들어 keyUp 이벤트를 처리하는 JavaScript를 실행하는 QWebView가 있습니다. KeyRelease 이벤트를 게시하지 않으면 생성되지 않습니다. –

+0

스택에 QKeyEvent가 할당되어 있다면'shareEvent'를 사용할 수도 있습니다. –