Qt4 External keyboard handling issues On wince platform
Solved
Mobile and Embedded
-
The key s of the external keyboard is treated as a hot key, and the function is the same as backspace.
the source file: C:\Qt\qt-everywhere-opensource-src-4.7.3\src\gui\kernel\qapplication_win.cpp
code snippet:
extern "C" LRESULT QT_WIN_CALLBACK QtWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { ..... #if Q_OS_WINCE_WM case WM_HOTKEY: if(HIWORD(msg.lParam) == VK_TBACK) { const bool hotKeyDown = !(LOWORD(msg.lParam) & MOD_KEYUP); msg.lParam = 0x69 << 16; msg.wParam = VK_BACK; if (hotKeyDown) { msg.message = WM_KEYDOWN; qt_keymapper_private()->updateKeyMap(msg); } else { msg.message = WM_KEYUP; } } // fall-through intended #endif .... }
Comment out the code segment and recompile the library to solve this problem
I have sent a Technical Issue Report to qt official.
Hope to get a feedback that can explain why it is implemented this way
my Email: craigtao@hushmail.com