Qt键盘-Android键盘映射

场景

在做远程控制的时候,需要在本地先捕获当前键盘事件,再将按的键发送给远端,在被控制端模拟对应的键盘事件来做出反应。要让程序知道按了键盘上的某个键,可以通过键盘扫描码或者各平台的虚拟键码来实现。
同一个键盘的键盘扫描码在不同平台结果都是相同的,但是不同厂家的键盘,以及接口不同的键盘(PS/2、USB) 扫描码都有可能不一样,为了减少硬件的影响还是将两个平台的虚拟键码做个映射。

映射表

只做了常见的键盘上的键,并不是全部的哈~

主键盘

本文福利,费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击费领取↓↓

Qt按键

Android按键

Android键码

Qt::Key_Escape

KEYCODE_ESCAPE

111

Qt::Key_F1

KEYCODE_F1

扫描二维码关注公众号,回复: 14567111 查看本文章

131

Qt::Key_F2

KEYCODE_F2

132

Qt::Key_F3

KEYCODE_F3

133

Qt::Key_F4

KEYCODE_F4

134

Qt::Key_F5

KEYCODE_F5

135

Qt::Key_F6

KEYCODE_F6

136

Qt::Key_F7

KEYCODE_F7

137

Qt::Key_F8

KEYCODE_F8

138

Qt::Key_F9

KEYCODE_F9

139

Qt::Key_F10

KEYCODE_F10

140

Qt::Key_F11

KEYCODE_F11

141

Qt::Key_F12

KEYCODE_F12

142

Qt::Key_QuoteLeft

KEYCODE_GRAVE

68

Qt::Key_0

KEYCODE_0

7

Qt::Key_1

KEYCODE_1

8

Qt::Key_2

KEYCODE_2

9

Qt::Key_3

KEYCODE_3

10

Qt::Key_4

KEYCODE_4

11

Qt::Key_5

KEYCODE_5

12

Qt::Key_6

KEYCODE_6

13

Qt::Key_7

KEYCODE_7

14

Qt::Key_8

KEYCODE_8

15

Qt::Key_9

KEYCODE_9

16

Qt::Key_Minus

KEYCODE_MINUS

69

Qt::Key_Equal

KEYCODE_EQUALS

70

Qt::Key_Backspace

KEYCODE_DEL

67

Qt::Key_A

KEYCODE_A

29

Qt::Key_B

KEYCODE_B

30

Qt::Key_C

KEYCODE_C

31

Qt::Key_D

KEYCODE_D

32

Qt::Key_E

KEYCODE_E

33

Qt::Key_F

KEYCODE_F

34

Qt::Key_G

KEYCODE_G

35

Qt::Key_H

KEYCODE_H

36

Qt::Key_I

KEYCODE_I

37

Qt::Key_J

KEYCODE_J

38

Qt::Key_K

KEYCODE_K

39

Qt::Key_L

KEYCODE_L

40

Qt::Key_M

KEYCODE_M

41

Qt::Key_N

KEYCODE_N

42

Qt::Key_O

KEYCODE_O

43

Qt::Key_P

KEYCODE_P

44

Qt::Key_Q

KEYCODE_Q

45

Qt::Key_R

KEYCODE_R

46

Qt::Key_S

KEYCODE_S

47

Qt::Key_T

KEYCODE_T

48

Qt::Key_U

KEYCODE_U

49

Qt::Key_V

KEYCODE_V

50

Qt::Key_W

KEYCODE_W

51

Qt::Key_X

KEYCODE_X

52

Qt::Key_Y

KEYCODE_Y

53

Qt::Key_Z

KEYCODE_Z

54

Qt::Key_Tab

KEYCODE_TAB

61

Qt::Key_CapsLock

KEYCODE_CAPS_LOCK

115

Qt::Key_Space

KEYCODE_SPACE

62

Qt::Key_BracketLeft

KEYCODE_LEFT_BRACKET

71

Qt::Key_BracketRight

KEYCODE_RIGHT_BRACKET

72

Qt::Key_Backslash

KEYCODE_BACKSLASH

73

Qt::Key_Semicolon

KEYCODE_SEMICOLON

74

Qt::Key_Apostrophe

KEYCODE_APOSTROPHE

75

Qt::Key_Return

KEYCODE_ENTER

66

Qt::Key_Comma

KEYCODE_COMMA

55

Qt::Key_Period

KEYCODE_PERIOD

56

Qt::Key_Slash

KEYCODE_SLASH

76

Qt::Key_ScrollLock

KEYCODE_SCROLL_LOCK

116

Qt::Key_Pause

KEYCODE_BREAK

121

Qt::Key_Insert

KEYCODE_INSERT

124

Qt::Key_Home

KEYCODE_MOVE_HOME

122

Qt::Key_PageUp

KEYCODE_PAGE_UP

92

Qt::Key_Delete

KEYCODE_FORWARD_DEL

112

Qt::Key_End

KEYCODE_MOVE_END

123

Qt::Key_PageDown

KEYCODE_PAGE_DOWN

93

Qt::Key_Up

KEYCODE_DPAD_UP

19

Qt::Key_Down

KEYCODE_DPAD_DOWN

20

Qt::Key_Left

KEYCODE_DPAD_LEFT

21

Qt::Key_Right

KEYCODE_DPAD_RIGHT

22

Qt::Key_Menu

KEYCODE_MENU

82

Qt::Key_Meta

---

---

Qt::Key_Control

KEYCODE_CTRL_LEFT

113

Qt::Key_Shift

KEYCODE_SHIFT_LEFT

59

Qt::Key_Alt

KEYCODE_ALT_LEFT

57

小键盘

只标了和主键盘不同的键码,通过event->modifiers() & Qt::KeypadModifier检测按的键是否为小键盘上的键:

Qt按键

Android按键

Android键码

Qt::Key_NumLock

KEYCODE_NUM_LOCK

143

Qt::Key_Slash

KEYCODE_NUMPAD_DIVIDE

154

Qt::Key_Asterisk

KEYCODE_NUMPAD_MULTIPLY

155

Qt::Key_0

KEYCODE_NUMPAD_0

144

Qt::Key_1

KEYCODE_NUMPAD_1

145

Qt::Key_2

KEYCODE_NUMPAD_2

146

Qt::Key_3

KEYCODE_NUMPAD_3

147

Qt::Key_4

KEYCODE_NUMPAD_4

148

Qt::Key_5

KEYCODE_NUMPAD_5

149

Qt::Key_6

KEYCODE_NUMPAD_6

150

Qt::Key_7

KEYCODE_NUMPAD_7

151

Qt::Key_8

KEYCODE_NUMPAD_8

152

Qt::Key_9

KEYCODE_NUMPAD_9

153

Qt::Key_Minus

KEYCODE_NUMPAD_SUBTRACT

156

Qt::Key_Plus

KEYCODE_NUMPAD_ADD

157

Qt::Key_Period

KEYCODE_NUMPAD_DOT

158

Qt::Key_Enter

KEYCODE_ENTER

66

组合键

组合键发送一个按键列表给被控制端, 例如需要按住Shift切换的键,发送Shift + 键盘上对应的键

Qt按键

Android按键

Android键码

Qt::Key_AsciiTilde

---

59 + 68

Qt::Key_Exclam

---

59 + 8

Qt::Key_At

---

59 + 9

Qt::Key_NumberSign

---

59 + 10

Qt::Key_Dollar

---

59 + 11

Qt::Key_Percent

---

59 +12

Qt::Key_AsciiCircum

---

59 + 13

Qt::Key_Ampersand

---

59 + 14

Qt::Key_Asterisk

---

59 + 15

Qt::Key_ParenLeft

---

59 + 16

Qt::Key_ParenRight

---

59 + 7

Qt::Key_Underscore

---

59 + 69

Qt::Key_Plus

---

59 + 70

Qt::Key_BraceLeft

---

59 + 71

Qt::Key_BraceRight

---

59 + 72

Qt::Key_Bar

---

59 + 73

Qt::Key_Colon

---

59 + 74

Qt::Key_QuoteDbl

---

59 + 75

Qt::Key_Less

---

59 + 55

Qt::Key_Greater

---

59 + 56

Qt::Key_Question

---

59 + 76

其余的根据event->modifiers()来识别功能键,再加上键盘键, 例如Ctrl+A => 113+29。

    if (event->modifiers() & Qt::ControlModifier) {
        //ctrl
    }

    if (event->modifiers() & Qt::ShiftModifier) {
        //shift
    }

    if (event->modifiers() & Qt::AltModifier) {
        //alt
    }

    if (event->modifiers() & Qt::MetaModifier) {
        //win
    }

本文福利,费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击费领取↓↓

猜你喜欢

转载自blog.csdn.net/m0_60259116/article/details/128648448