2010-01-09 37 views

Trả lời

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

Điều này không hoạt động trong qt4 – weberc2

18

Câu trả lời đúng có thể là thế này:

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

trên thực tế không có chức năng phù hợp cho cuộc gọi đến

QtKeyEvent::QtKeyEvent(Type type, int key)

nhưng có:

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

+3

Nên là Qt :: NoModifier không Qt :: NoModifiers. – Therefore

+2

Điều quan trọng là mô phỏng một KeyPress theo sau là một KeyReleased vì có các đối tượng xử lý một cái gì đó khi khóa được phát hành. Một ví dụ là QWebView chạy JavaScript xử lý các sự kiện keyUp. Chúng sẽ không được tạo trừ khi bạn đăng sự kiện KeyRelease. –

+0

Bạn cũng có thể sử dụng 'shareEvent' nếu bạn muốn phân bổ' QKeyEvent' trên ngăn xếp. –

Các vấn đề liên quan