Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在Linux中获取键盘键代码_C++_Linux_Qt_Enums_Keycode - Fatal编程技术网

C++ 在Linux中获取键盘键代码

C++ 在Linux中获取键盘键代码,c++,linux,qt,enums,keycode,C++,Linux,Qt,Enums,Keycode,我需要从键盘输入中获取键码(但在Linux中之后),我能够找到 按键密码仅在Windows中可用 使用枚举,我可以使它跨平台,这里是一块(不完整,太大)的 枚举代码: enum e_IWEKey { Unknown = 0, // Digits / Numbers D0, D1, D2, D3, D4, D5, D6, D7, D8, D9, // Letters A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, } 这里还有另一

我需要从键盘输入中获取键码(但在Linux中之后),我能够找到 按键密码仅在Windows中可用

使用枚举,我可以使它跨平台,这里是一块(不完整,太大)的 枚举代码:

  enum e_IWEKey
{
  Unknown = 0,

// Digits / Numbers
D0,
D1,
D2,
D3,
D4,
D5,
D6,
D7,
D8,
D9,

// Letters
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
}
这里还有另一段对应的Win32API键码

    #ifdef _WIN32
    # include <WinUser.h>

  inline e_IWEKey getKey(uchar OSKey)
  {
    switch (OSKey)
    {
      // Digits / Numbers
    case 0x30: return IWEKeys::D0;
    case 0x31: return IWEKeys::D1;
    case 0x32: return IWEKeys::D2;
    case 0x33: return IWEKeys::D3;
    case 0x34: return IWEKeys::D4;
    case 0x35: return IWEKeys::D5;
    case 0x36: return IWEKeys::D6;
    case 0x37: return IWEKeys::D7;
    case 0x38: return IWEKeys::D8;
    case 0x39: return IWEKeys::D9;

      // Letters
    case 0x41: return IWEKeys::A;
    case 0x42: return IWEKeys::B;
    case 0x43: return IWEKeys::C;
    case 0x44: return IWEKeys::D;
    case 0x45: return IWEKeys::E;
    case 0x46: return IWEKeys::F;
    case 0x47: return IWEKeys::G;
    case 0x48: return IWEKeys::H;
    case 0x49: return IWEKeys::I;
    case 0x4A: return IWEKeys::J;
    case 0x4B: return IWEKeys::K;
    case 0x4C: return IWEKeys::L;
    case 0x4D: return IWEKeys::M;
    case 0x4E: return IWEKeys::N;
    case 0x4F: return IWEKeys::O;
    case 0x50: return IWEKeys::P;
    case 0x51: return IWEKeys::Q;
    case 0x52: return IWEKeys::R;
    case 0x53: return IWEKeys::S;
    case 0x54: return IWEKeys::T;
    case 0x55: return IWEKeys::U;
    case 0x56: return IWEKeys::V;
    case 0x57: return IWEKeys::W;
    case 0x58: return IWEKeys::X;
    case 0x59: return IWEKeys::Y;
    case 0x5A: return IWEKeys::Z;

      // Function Keys
    case VK_F1: return IWEKeys::F1;
    case VK_F2: return IWEKeys::F2;
    case VK_F3: return IWEKeys::F3;
    case VK_F4: return IWEKeys::F4;
    case VK_F5: return IWEKeys::F5;
    case VK_F6: return IWEKeys::F6;
    case VK_F7: return IWEKeys::F7;
    case VK_F8: return IWEKeys::F8;
    case VK_F9: return IWEKeys::F9;
    case VK_F10: return IWEKeys::F10;
    case VK_F11: return IWEKeys::F11;
    case VK_F12: return IWEKeys::F12;
    case VK_F13: return IWEKeys::F13;
    case VK_F14: return IWEKeys::F14;
    case VK_F15: return IWEKeys::F15;
    case VK_F16: return IWEKeys::F16;
    case VK_F17: return IWEKeys::F17;
    case VK_F18: return IWEKeys::F18;
    case VK_F19: return IWEKeys::F19;
    case VK_F20: return IWEKeys::F20;
    case VK_F21: return IWEKeys::F21;
    case VK_F22: return IWEKeys::F22;
    case VK_F23: return IWEKeys::F23;
    case VK_F24: return IWEKeys::F24;
    }
    }
    #endif
\ifdef\u WIN32
#包括
内联e_IWEKey getKey(uchar OSKey)
{
开关(OSKey)
{
//数字/数字
案例0x30:返回IWEKeys::D0;
案例0x31:返回IWEKeys::D1;
案例0x32:返回IWEKeys::D2;
案例0x33:返回IWEKeys::D3;
案例0x34:返回IWEKeys::D4;
案例0x35:返回IWEKeys::D5;
案例0x36:返回IWEKeys::D6;
案例0x37:返回IWEKeys::D7;
案例0x38:返回IWEKeys::D8;
案例0x39:返回IWEKeys::D9;
//信件
案例0x41:返回IWEKeys::A;
案例0x42:返回IWEKeys::B;
案例0x43:返回IWEKeys::C;
案例0x44:返回IWEKeys::D;
案例0x45:返回IWEKeys::E;
案例0x46:返回IWEKeys::F;
案例0x47:返回IWEKeys::G;
案例0x48:返回IWEKeys::H;
案例0x49:返回IWEKeys::I;
案例0x4A:返回IWEKeys::J;
案例0x4B:返回IWEKeys::K;
案例0x4C:返回IWEKeys::L;
案例0x4D:返回IWEKeys::M;
案例0x4E:返回IWEKeys::N;
案例0x4F:返回IWEKeys::O;
案例0x50:返回IWEKeys::P;
案例0x51:返回IWEKeys::Q;
案例0x52:返回IWEKeys::R;
案例0x53:返回IWEKeys::S;
案例0x54:返回IWEKeys::T;
案例0x55:返回IWEKeys::U;
案例0x56:返回IWEKeys::V;
案例0x57:返回IWEKeys::W;
案例0x58:返回IWEKeys::X;
案例0x59:返回IWEKeys::Y;
案例0x5A:返回IWEKeys::Z;
//功能键
案例VK_F1:返回IWEKeys::F1;
案例VK_F2:返回IWEKeys::F2;
案例VK_F3:返回IWEKeys::F3;
案例VK_F4:返回IWEKeys::F4;
案例VK_F5:返回IWEKeys::F5;
案例VK_F6:返回IWEKeys::F6;
案例VK_F7:返回IWEKeys::F7;
案例VK_F8:返回IWEKeys::F8;
案例VK_F9:返回IWEKeys::F9;
案例VK_F10:返回IWEKeys::F10;
案例VK_F11:返回IWEKeys::F11;
案例VK_F12:返回IWEKeys::F12;
案例VK_F13:返回IWEKeys::F13;
案例VK_F14:返回IWEKeys::F14;
案例VK_F15:返回IWEKeys::F15;
案例VK_F16:返回IWEKeys::F16;
案例VK_F17:返回IWEKeys::F17;
案例VK_F18:返回IWEKeys::F18;
案例VK_F19:返回IWEKeys::F19;
案例VK_F20:返回IWEKeys::F20;
案例VK_F21:返回IWEKeys::F21;
案例VK_F22:返回IWEKeys::F22;
案例VK_F23:返回IWEKeys::F23;
案例VK_F24:返回IWEKeys::F24;
}
}
#恩迪夫
但是我从来没有找到Linux密钥码,我需要使用内部Linux API(或POSIX)、X11 API或特定于工具箱的API?(如Qt)。
谢谢。

如果您可以使用qt,那么就有了

基于qt中键的定义,我认为在linux和windows之间键代码不会改变