Как определить код клавиш клавиатуры

Ввод с клавиатуры (начало работы с Win32 и C++)

Клавиатура используется для нескольких различных типов ввода, в том числе:

  • Ввод символов. Текст, который пользователь вводит в документ или поле ввода.
  • Сочетания клавиш. Росчерки ключей, вызывающие функции приложения; Например, нажмите клавиши CTRL+O, чтобы открыть файл.
  • Системные команды. Росчерки клавиш, вызывающие системные функции; например, ALT+TAB для переключения окон.

При вводе с клавиатуры важно помнить, что росчерк клавиши не совпадает с символом. Например, нажатие клавиши A может привести к любому из следующих символов.

  • а
  • Объект
  • á (если клавиатура поддерживает объединение диакритических элементов)

Кроме того, если клавиша ALT удерживается, нажатие клавиши A создает клавиши ALT+A, которую система вообще не рассматривает как символ, а как системную команду.

Коды ключей

При нажатии клавиши оборудование создает код сканирования. Коды сканирования различаются от одной клавиатуры к следующей, и существуют отдельные коды сканирования для событий нажатия клавиши вверх и вниз. Вы почти никогда не будете заботиться о кодах сканирования. Драйвер клавиатуры преобразует коды сканирования в коды виртуальных ключей. Коды виртуальных ключей не зависят от устройства. Нажатие клавиши A на любой клавиатуре создает тот же код виртуального ключа.

Как правило, коды виртуальных ключей не соответствуют кодам ASCII или любому другому стандарту кодировки символов. Это очевидно, если вы думаете об этом, так как один и тот же ключ может создавать разные символы (a, A, á) и некоторые ключи, такие как ключи функций, не соответствуют ни одному символу.

При этом следующие коды виртуальных ключей сопоставляют с эквивалентами ASCII:

  • От 0 до 9 ключей = ASCII ‘0’ – ‘9’ (0x30 – 0x39)
  • A-Z keys = ASCII ‘A’ – ‘Z’ (0x41 – 0x5A)

В некоторых отношениях это сопоставление к сожалению, потому что вы никогда не должны рассматривать коды виртуальных ключей как символы по причинам, рассмотренным.

Файл заголовка WinUser.h определяет константы для большинства кодов виртуальных ключей. Например, код виртуального ключа для клавиши СТРЕЛКА ВЛЕВО VK_LEFT ( 0x25). Полный список кодов виртуальных ключей см. в разделе «Коды виртуальных ключей«. Константы не определены для кодов виртуальных ключей, соответствующих значениям ASCII. Например, код виртуального ключа для ключа A 0x41, но нет константы с именем VK_A. Вместо этого просто используйте числовое значение.

Сообщения Key-Down и Key-Up

При нажатии клавиши окно с фокусом клавиатуры получает одно из следующих сообщений.

Сообщение WM_SYSKEYDOWN указывает системный ключ, который является росчерком ключа, который вызывает системную команду. Существует два типа системного ключа:

Клавиша F10 активирует строку меню окна. Различные сочетания клавиш ALT вызывают системные команды. Например, alt+TAB переключается в новое окно. Кроме того, если в окне есть меню, клавиша ALT можно использовать для активации пунктов меню. Некоторые сочетания клавиш ALT ничего не делают.

Все остальные росчерки ключей считаются несистемными ключами и создают сообщение WM_KEYDOWN . Сюда входят ключи функций, отличные от F10.

При освобождении ключа система отправляет соответствующее сообщение о ключе:

Если вы удерживаете клавишу достаточно долго, чтобы запустить функцию повторения клавиатуры, система отправляет несколько сообщений вниз, а затем одно сообщение вверх.

Во всех четырех сообщениях клавиатуры, рассмотренных до сих пор, параметр wParam содержит код виртуального ключа ключа. Параметр lParam содержит некоторые прочие сведения, упакованные в 32 бита. Обычно информация в lParam не требуется. Один из флагов, которые могут быть полезны, — это бит 30, флаг «Предыдущее состояние ключа», который имеет значение 1 для повторяющихся сообщений с ключом вниз.

Как подразумевает имя, росчерки системных ключей в первую очередь предназначены для использования операционной системой. Если вы перехватываете сообщение WM_SYSKEYDOWN , вызовите DefWindowProc после этого. В противном случае вы заблокируйте обработку команды операционной системой.

Символьные сообщения

Росчерки клавиш преобразуются в символы с помощью функции TranslateMessage , которую мы впервые видели в модуле 1. Эта функция проверяет сообщения с помощью клавиш и преобразует их в символы. Для каждого создаваемого символа функция TranslateMessage помещает сообщение WM_CHAR или WM_SYSCHAR в очередь сообщений окна. Параметр wParam сообщения содержит символ UTF-16.

Как вы можете догадаться, WM_CHAR сообщения создаются из WM_KEYDOWN сообщений, а WM_SYSCHAR сообщения создаются из WM_SYSKEYDOWN сообщений. Например, предположим, что пользователь нажимает клавишу SHIFT, за которой следует клавиша A. При условии стандартной раскладки клавиатуры вы получите следующую последовательность сообщений:

WM_KEYDOWN: SHIFT
WM_KEYDOWN: A
WM_CHAR: «A»

С другой стороны, сочетание ALT+P создаст следующее:

WM_SYSKEYDOWN: VK_MENU
WM_SYSKEYDOWN: 0x50
WM_SYSCHAR: «p»
WM_SYSKEYUP: 0x50
WM_KEYUP: VK_MENU

(Код виртуального ключа для ключа ALT называется VK_MENU по историческим причинам.)

Сообщение WM_SYSCHAR указывает системный символ. Как и в случае с WM_SYSKEYDOWN, обычно это сообщение следует передавать непосредственно в DefWindowProc. В противном случае можно мешать стандартным системным командам. В частности, не рассматривайте WM_SYSCHAR как текст, введенный пользователем.

Сообщение WM_CHAR — это то, что обычно считается символьным вводом. Тип данных для символа — wchar_t, представляющий символ Юникода UTF-16. Ввод символов может включать символы за пределами диапазона ASCII, особенно с раскладками клавиатуры, которые обычно используются за пределами США. Вы можете попробовать различные раскладки клавиатуры, установив региональную клавиатуру, а затем используя функцию экранной клавиатуры.

Пользователи также могут установить редактор метода ввода (IME) для ввода сложных сценариев, таких как японские символы, со стандартной клавиатурой. Например, используя японский IME для ввода символа катаканы カ (ka), вы можете получить следующие сообщения:

WM_KEYDOWN: VK_PROCESSKEY (ключ процесса IME)
WM_KEYUP: 0x4B
WM_KEYDOWN: VK_PROCESSKEY
WM_KEYUP: 0x41
WM_KEYDOWN: VK_PROCESSKEY
WM_CHAR: カ
WM_KEYUP: VK_RETURN

Некоторые сочетания клавиш CTRL превратятся в управляющие символы ASCII. Например, ctrl+A преобразуется в символ ASCII CTRL-A (SOH) (значение ASCII 0x01). Для ввода текста обычно следует отфильтровать управляющие символы. Кроме того, не используйте WM_CHAR для реализации сочетаний клавиш. Вместо этого используйте WM_KEYDOWN сообщения; или даже лучше использовать таблицу акселератора. Таблицы акселератора описаны в следующем разделе таблицы ускорителей.

В следующем коде отображаются основные сообщения клавиатуры в отладчике. Попробуйте воспроизвести с разными сочетаниями нажатия клавиш и посмотрите, какие сообщения создаются.

Не забудьте включить wchar.h или еще swprintf_s будет неопределенным.

Прочие сообщения клавиатуры

Некоторые другие сообщения клавиатуры можно безопасно игнорировать большинством приложений.

  • Сообщение WM_DEADCHAR отправляется для сочетания ключа, например диакритического ключа. Например, на испанской клавиатуре введите акцент (‘), за которым следует E, создает символ é. WM_DEADCHAR отправляется для символа акцента.
  • Сообщение WM_UNICHAR устарело. Это позволяет программам ANSI получать входные данные символов Юникода.
  • Символ WM_IME_CHAR отправляется, когда IME преобразует последовательность нажатия клавиш в символы. Он отправляется в дополнение к обычному WM_CHAR сообщению.

Состояние клавиатуры

Сообщения клавиатуры управляются событиями. То есть вы получите сообщение, когда происходит что-то интересное, например нажатие клавиши, и сообщение сообщает вам, что только что произошло. Но вы также можете проверить состояние ключа в любое время, вызвав функцию GetKeyState .

Например, рассмотрим, как определить сочетание клавиши ALT и щелчка мыши слева. Вы можете отслеживать состояние клавиши ALT, прослушивая сообщения и сохраняя флаг, но GetKeyState спасает вас от проблем. Когда вы получите сообщение WM_LBUTTONDOWN , просто вызовите GetKeyState следующим образом:

Сообщение GetKeyState принимает код виртуального ключа в качестве входных данных и возвращает набор битовых флагов (фактически всего два флага). Значение 0x8000 содержит битовый флаг, который проверяет, нажата ли в данный момент клавиша.

Большинство клавиатур имеют две клавиши ALT, слева и справа. В предыдущем примере проверяется, нажат ли один из них. Вы также можете использовать GetKeyState для различения левых и правых экземпляров клавиш ALT, SHIFT или CTRL. Например, следующий код проверяет, нажата ли правая клавиша ALT.

Функция GetKeyState интересна, так как она сообщает о состоянии виртуальной клавиатуры. Это виртуальное состояние основано на содержимом очереди сообщений и обновляется при удалении сообщений из очереди. Когда программа обрабатывает сообщения окна, GetKeyState предоставляет моментальный снимок клавиатуры во время постановки каждого сообщения в очередь. Например, если последнее сообщение в очереди было WM_LBUTTONDOWN, GetKeyState сообщает о состоянии клавиатуры в тот момент, когда пользователь нажал кнопку мыши.

Так как GetKeyState основан на очереди сообщений, он также игнорирует ввод клавиатуры, отправленный в другую программу. Если пользователь переключается на другую программу, все нажатия клавиш, отправляемые в программу, игнорируются GetKeyState. Если вы действительно хотите знать немедленное физическое состояние клавиатуры, существует функция для этого: GetAsyncKeyState. Однако для большинства кодов пользовательского интерфейса правильная функция — GetKeyState.

Источник

Значения клавиш

В таблицах ниже перечислены стандартные значения различных категорий клавиш с объяснением того, для чего этот клавиша обычно используется. Соответствующие виртуальные коды клавиш для распространённых платформ включены там, где они доступны.

Узнайте, как использовать эти пары «ключ-значение» в JavaScript с помощью KeyboardEvent.key

Специальные значения

Значения клавиш имеющих особое значение, кроме идентификации определённой клавиши или символа.

Пользовательский агент не смог сопоставить виртуальный клавиатурный код события с определённым значением клавиши.

Это может произойти из-за аппаратных или программных ограничений или из-за ограничений платформы, на которой работает пользовательский агент.

Значение KeyboardEvent.key Описание Виртуальный код клавиши
Windows Mac Linux Android
«Unidentified» разное разное разное разное

Клавиши-модификаторы

Специальные клавиши-модификаторы, которые используются для генерации специальных символов или вызывают особые действия при использовании в сочетании с другими клавишами. Например: Shift и Control , или lock-клавиши, такие как Caps Lock и NumLock .

Значение KeyboardEvent.key Описание Виртуальный код клавиши
Windows Mac Linux Android
«Alt» [5] Клавиша Alt (Alternative) . VK_MENU (0x12)
VK_LMENU (0xA4)
VK_RMENU (0xA5)
kVK_Option (0x3A)
kVK_RightOption (0x3D)
GDK_KEY_Alt_L (0xFFE9)
GDK_KEY_Alt_R (0xFFEA)
Qt::Key_Alt (0x01000023)
KEYCODE_ALT_LEFT (57)
KEYCODE_ALT_RIGHT (58)
«AltGraph» [5] Клавиша AltGr или AltGraph (Альтернативная графика). Enables the ISO Level 3 shift modifier (where Shift is the level 2 modifier). GDK_KEY_Mode_switch (0xFF7E)
GDK_KEY_ISO_Level3_Shift (0xFE03)
GDK_KEY_ISO_Level3_Latch (0xFE04)
GDK_KEY_ISO_Level3_Lock (0xFE05)
GDK_KEY_ISO_Level5_Shift (0xFE11)
GDK_KEY_ISO_Level5_Latch (0xFE12)
GDK_KEY_ISO_Level5_Lock (0xFE13)
Qt::Key_AltGr (0x01001103
Qt::Key_Mode_switch (0x0100117E)
«CapsLock» Клавиша Caps Lock . Включает и выключает блокировку заглавных букв для последующего ввода. VK_CAPITAL (0x14) kVK_CapsLock (0x39) GDK_KEY_Caps_Lock (0xFFE5)
Qt::Key_CapsLock (0x01000024)
KEYCODE_CAPS_LOCK (115)
«Control» Клавиша Control , Ctrl , или Ctl . Позволяет вводить управляющие символы. VK_CONTROL (0x11)
VK_LCONTROL (0xA2)
VK_RCONTROL (0xA3)
kVK_Control (0x3B)
kVK_RightControl (0x3E)
GDK_KEY_Control_L (0xFFE3)
GDK_KEY_Control_R (0xFFE4)
Qt::Key_Control (0x01000021)
KEYCODE_CTRL_LEFT (113)
KEYCODE_CTRL_RIGHT (114)
«Fn» Fn (Function modifier) key. Используется для создания функциональной клавиши ( F1 – F15 , например) символы на клавиатуре без выделенной области функциональных клавиш.Часто обрабатывается аппаратно, поэтому для этой клавиши не создаются события. kVK_Function (0x3F) KEYCODE_FUNCTION (119)
«FnLock» Клавиша FnLock или F-Lock (Function Lock) .Переключает режим функциональных клавиш, описанный «Fn» вкл. и выкл. Часто обрабатывается аппаратно, поэтому для этой клавиши не создаются события.
«Hyper» [4] Клавиша Hyper . GDK_KEY_Hyper_L (0xFFED)
GDK_KEY_Hyper_R (0xFFEE)
Qt::Key_Hyper_L (0x01000056)
Qt::Key_Hyper_R (0x01000057)
«Meta» [1] Клавиша Meta . Позволяет вводить специальные команды. Это клавиши с лого Windows , или Command или ⌘ на клавиатуре Mac . VK_LWIN (0x5B)
VK_RWIN (0x5C)
kVK_Command (0x37)
kVK_RightCommand (0x36)
GDK_KEY_Meta_L (0xFFE7)
GDK_KEY_Meta_R (0xFFE8)
Qt::Key_Meta (0x01000022)
KEYCODE_META_LEFT (117)
KEYCODE_META_RIGHT (118)
«NumLock» Клавиша NumLock (Number Lock). Переключает цифровую клавиатуру между вводом номера и другим режимом (часто стрелки направления). VK_NUMLOCK (0x90) GDK_KEY_Num_Lock (0xFF7F)
Qt::Key_NumLock (0x01000025)
KEYCODE_NUM_LOCK (143)
«ScrollLock» [2] Клавиша Scroll Lock Переключает между режимами прокрутки и перемещения курсора. VK_SCROLL (0x91) GDK_KEY_Scroll_Lock (0xFF14)
Qt::Key_ScrollLock (0x01000026)
KEYCODE_SCROLL_LOCK (116)
«Shift» Клавиша Shift . Изменяет нажатия клавиш, чтобы разрешить ввод букв в верхнем (или другом) регистре, а также для поддержки ввода знаков препинания и других специальных символов. VK_SHIFT (0x10)
VK_LSHIFT (0xA0)
VK_RSHIFT (0xA1)
kVK_Shift (0x38)
kVK_RightShift (0x3C)
GDK_KEY_Shift_L (0xFFE1)
GDK_KEY_Shift_R (0xFFE2)
Qt::Key_Shift (0x01000020)
KEYCODE_SHIFT_LEFT (59)
KEYCODE_SHIFT_RIGHT (60)
«Super» [4] Клавиша Super . GDK_KEY_Super_L (0xFFEB)
GDK_KEY_Super_R (0xFFEC)
Qt::Key_Super_L (0x01000053)
Qt::Key_Super_R (0x01000054)
«Symbol» Клавиша-модификатор Symbol (есть на некоторых виртуальных клавиатурах). KEYCODE_SYM (63) [3]
«SymbolLock» Клавиша Symbol Lock

[1] В Internet Explorer (проверено на релизах 9 и 11), а также во всех версиях Firefox, клавиша Windows сообщается как «OS» а не «Meta» . Это будет изменено в Firefox в баг 1232918. Пока это не будет исправлено, эти ключи возвращаются как «OS» в Firefox: VK_LWIN (0x5B) и VK_RWIN (0x5C) в Windows, и GDK_KEY_Super_L (0xFFEB) , GDK_KEY_Super_R (0xFFEC) , GDK_KEY_Hyper_L (0xFFED) , и GDK_KEY_Hyper_R (0xFFEE) в Linux.

[2] Internet Explorer (проверено на релизах 9 и 11) сообщает «Scroll» вместо «ScrollLock» для клавиши Scroll Lock .

[3] Firefox не поддерживает клавишу Symbol до версии Firefox 37.

[4] Firefox генерирует значение ключа «OS » для клавиш Super и Hyper вместо «Super» и «Hyper» .

[5] Chrome 67 и Firefox 63 теперь правильно интерпретируют правую клавишу Alt для раскладок клавиатуры, которые сопоставляют эту клавишу с AltGr . См. Дополнительные сведения об ошибке баг 900750 и Chrome bug 25503 для подробных деталей.

Пробельные клавиши

GDK_KEY_space (0x20)
GDK_KEY_KP_Space (0xFF80)
Qt::Key_Space (0x20)

Значение KeyboardEvent.key Описание Виртуальный код клавиши
Windows Mac Linux Android
«Enter» Клавиша Enter или ↵ (иногда помечается как Return ). VK_RETURN (0x0D) kVK_Return (0x24)
kVK_ANSI_KeypadEnter (0x4C)
kVK_Powerbook_KeypadEnter (0x34)
GDK_KEY_Return (0xFF0D)
GDK_KEY_KP_Enter (0xFF8D)
GDK_KEY_ISO_Enter (0xFE34)
GDK_KEY_3270_Enter (0xFD1E)
Qt::Key_Return (0x01000004)
Qt::Key_Enter (0x01000005)
KEYCODE_ENTER (66)
KEYCODE_NUMPAD_ENTER (160)
KEYCODE_DPAD_CENTER (23)
«Tab» Горизонтальная табуляция, Tab . VK_TAB (0x09) kVK_Tab (0x30) GDK_KEY_Tab (0xFF09)
GDK_KEY_KP_Tab (0xFF89)
GDK_KEY_ISO_Left_Tab (0xFE20)
Qt::Key_Tab (0x01000001)
KEYCODE_TAB (61)
» » [1] Пробел, Space Bar . VK_SPACE (0x20) kVK_Space (0x31) KEYCODE_SPACE (62)

[1] Старые браузеры могут вернуть «Spacebar» вместо » » для клавиши Space Bar . Firefox делал это до версии 37, как в Internet Explorer 9, 10, и 11.

Значение KeyboardEvent.key Описание Виртуальный код клавиши
Windows Mac Linux Android
«ArrowDown» [1] Клавиша со стрелкой «вниз». VK_DOWN (0x28) kVK_DownArrow (0x7D) GDK_KEY_Down (0xFF54)
GDK_KEY_KP_Down (0xFF99)
Qt::Key_Down (0x01000015)
KEYCODE_DPAD_DOWN (20)
«ArrowLeft» [1] Клавиша со стрелкой «влево» . VK_LEFT (0x25) kVK_LeftArrow (0x7B) GDK_KEY_Left (0xFF51)
GDK_KEY_KP_Left (0xFF96)
Qt::Key_Left (0x01000012)
KEYCODE_DPAD_LEFT (21)
«ArrowRight» [1] Клавиша со стрелкой «вправо». VK_RIGHT (0x27) kVK_RightArrow (0x7C) GDK_KEY_Right (0xFF53)
GDK_KEY_KP_Right (0xFF98)
Qt::Key_Right (0x01000014)
KEYCODE_DPAD_RIGHT (22)
«ArrowUp» [1] Клавиша со стрелкой «вверх». VK_UP (0x26) kVK_UpArrow (0x7E) GDK_KEY_Up (0xFF52)
GDK_KEY_KP_Up (0xFF97)
Qt::Key_Up (0x01000013)
KEYCODE_DPAD_UP (19)
«End» Клавиша End . Перемещает в конец контента. VK_END (0x23) kVK_End (0x77) GDK_KEY_End (0xFF57)
GDK_KEY_KP_End (0xFF9C)
Qt::Key_End (0x01000011)
KEYCODE_MOVE_END (123)
«Home» Клавиша Home . В начало контента. VK_HOME (0x24) kVK_Home (0x73) GDK_KEY_Home (0xFF50)
GDK_KEY_KP_Home (0xFF95)
Qt::Key_Home (0x01000010)
KEYCODE_MOVE_HOME (122)
«PageDown» Клавиша Page Down (или PgDn ). Прокручивает вниз или отображает следующую страницу содержимого. VK_NEXT (0x22) kVK_PageDown (0x79) GDK_KEY_Page_Down (0xFF56)
GDK_KEY_KP_Page_Down (0xFF9B)
Qt::Key_PageDown (0x01000017)
KEYCODE_PAGE_DOWN (93)
«PageUp» Клавиша Page Up (или PgUp ). Прокручивает вверх или отображает предыдущую страницу содержимого. VK_PRIOR (0x21) kVK_PageUp (0x74) GDK_KEY_Page_Up (0xFF55)
GDK_KEY_KP_Page_Up (0xFF9A)
Qt::Key_PageUp (0x01000016)
KEYCODE_PAGE_UP (92)

[1] Internet Explorer, Edge (16 и ранее), и Firefox (36 и ранее) используют «Left» , «Right» , «Up» , и «Down» вместо «ArrowLeft» , «ArrowRight» , «ArrowUp» , и «ArrowDown» .

Клавиши редактирования

Значение KeyboardEvent.key Описание Виртуальный код клавиши
Windows Mac Linux Android
«Backspace» The Backspace key. This key is labeled Delete on Mac keyboards. VK_BACK (0x08) kVK_Delete (0x33) GDK_KEY_BackSpace (0xFF08)
Qt::Key_Backspace (0x01000003)
KEYCODE_DEL (67)
«Clear» The Clear key. Removes the currently selected input. VK_CLEAR (0x0C)
VK_OEM_CLEAR (0xFE)
kVK_ANSI_KeypadClear (0x47) GDK_KEY_Clear (0xFF0B)
Qt::Key_Clear (0x0100000B)
KEYCODE_CLEAR (28)
«Copy» The Copy key (on certain extended keyboards). APPCOMMAND_COPY GDK_KEY_Copy (0x1008FF57)
Qt::Key_Copy (0x010000CF)
«CrSel» [3] The Cursor Select key, CrSel . VK_CRSEL (0xF7) GDK_KEY_3270_CursorSelect (0xFD1C)
«Cut» The Cut key (on certain extended keyboards). APPCOMMAND_CUT GDK_KEY_Cut (0x1008FF58)
Qt::Key_Cut (0x010000D0)
«Delete» [2] Клавиша Delete, Del . VK_DELETE (0x2E) kVK_ForwardDelete (0x75) [1] GDK_KEY_Delete (0xFFFF)
GDK_KEY_KP_Delete (0xFF9F)
Qt::Key_Delete (0x01000007)
KEYCODE_FORWARD_DEL (112)
«EraseEof» Erase to End of Field. Deletes all characters from the current cursor position to the end of the current field. VK_EREOF (0xF9) GDK_KEY_3270_ExSelect (0xFD1B)
«ExSel» [4] The ExSel (Extend Selection) key. VK_EXSEL (0xF8) GDK_KEY_3270_ExSelect (0xFD1B)
«Insert» The Insert key, Ins . Toggles between inserting and overwriting text. VK_INSERT (0x2D) GDK_KEY_Insert (0xFF63)
GDK_KEY_KP_Insert (0xFF9E)
Qt::Key_Insert (0x01000006)
KEYCODE_INSERT (124)
«Paste» Paste from the clipboard. APPCOMMAND_PASTE GDK_KEY_Paste (0x1008FF6D)
Qt::Key_Paste (0x010000E2)
«Redo» Redo the last action. APPCOMMAND_REDO GDK_KEY_Redo (0xFF66)
«Undo» Undo the last action. APPCOMMAND_UNDO GDK_KEY_Undo (0xFF65)

[1] On keyboards without a dedicated Del key, the Mac generates the «Delete» value when Fn is pressed in tandem with Delete (which is Backspace on other platforms).

[2] Internet Explorer (tested on release 9 and 11) and Firefox 36 and earlier use «Del» instead of «Delete» for the Del key.

[3] Internet Explorer (tested on release 9 and 11) and Firefox 36 and earlier generate the value «Crsel» instead of «CrSel» when the CrSel key is pressed.

[4] Internet Explorer (tested on release 9 and 11) and Firefox 36 and earlier generate the value «Exsel» instead of «ExSel» when the ExSel key is pressed.

Клавиши интерфейса пользователя (UI)

Значение KeyboardEvent.key Описание Виртуальный код клавиши
Windows Mac Linux Android
«Accept» Клавиша или кнопка Accept , Commit , или OK . Accepts the currently selected option or input method sequence conversion. VK_ACCEPT (0x1E) KEYCODE_DPAD_CENTER (23)
«Again» The Again key. Перевыполняет или повторяет предыдущее действие. GDK_KEY_Redo (0xFF66)
«Attn» [4] Клавиша «Внимание» Attn . VK_OEM_ATTN (0xF0) GDK_KEY_3270_Attn (0xFD0E)
«Cancel» [1] Клавиша отмены Cancel . GDK_KEY_Cancel (0xFF69)
«ContextMenu» [3] Отображает контекстное меню. Обычно находится между клавишами Windows (или OS ) и Control на правой стороне клавиатуры. VK_APPS (0x5D) kVK_PC_ContextMenu (0x6E) GDK_KEY_Menu (0xFF67)
Qt::Key_Menu (0x01000055)
KEYCODE_MENU (82)
«Escape» [2] Клавиша отмены Esc . Обычно используется для выходы, отмены, ил выхода из текущей операции. Исторически Escape-символ использовался для подачи сигнала о начале специальной управляющей последовательности символов, называемой «escape-последовательностью». VK_ESCAPE (0x1B) kVK_Escape (0x35) GDK_KEY_Escape (0xFF1B)
Qt::Key_Escape (0x01000000)
KEYCODE_ESCAPE (111)
«Execute» Клавиша «Выполнить» Execute . VK_EXECUTE (0x2B) Qt::Key_Execute (0x01020003)
«Find» Клавиша «Найти» Find . Открывает интерфейс (обычно диалоговое окно) для выполнения операции поиска. APPCOMMAND_FIND GDK_KEY_Find (0xFF68)
«Finish» [5] Клавиша завершения Finish . VK_OEM_FINISH (0xF1)
«Help» Клавиша помощи Help . Открывает или переключает отображение справочной информации. VK_HELP (0x2F)
APPCOMMAND_HELP
kVK_Help (0x72) GDK_KEY_Help (0xFF6A)
Qt::Key_Help (0x01000058)
KEYCODE_HELP (259)
«Pause» Клавиша паузы Pause . Приостанавливает текущее приложение или состояние, если это применимо.
VK_PAUSE (0x13) GDK_KEY_Pause (0xFF13)
GDK_KEY_Break (0xFF6B)
Qt::Key_Pause (0x01000008) KEYCODE_BREAK (121) «Play» Клавиша Play . Если применимо, возобновляет ранее приостановленное приложение. VK_PLAY (0xFA) GDK_KEY_3270_Play (0xFD16)
Qt::Key_Play (0x01020005) «Props» Клавиша «Свойства» Props . «Select» Клавиша выбора/выделения Select . VK_SELECT (0x29) GDK_KEY_Select (0xFF60) KEYCODE_BUTTON_SELECT (109) «ZoomIn» [6] Клавиша увеличения масштаба ZoomIn . GDK_KEY_ZoomIn (0x1008FF8B)
Qt::Key_ZoomIn (0x010000F6) KEYCODE_ZOOM_IN (168) «ZoomOut» [6] Клавиша уменьшения масштаба ZoomOut . GDK_KEY_ZoomOut (0x1008FF8C)
Qt::Key_ZoomOut (0x010000F7) KEYCODE_ZOOM_OUT (169)

[1] В Google Chrome 52, клавиша Cancel ошибочно возвращает значение «Pause» . Исправлено в Chrome 53. (Смотри подробно в Chrome bug 612749.)

[2] В Internet Explorer (проверено в версиях 9 и 11) и Firefox 36 и более ранних, клавиша Esc возвращает значение «Esc» вместо «Escape» .

[3] Internet Explorer (проверено в версиях 9 и 11) и Firefox 36 и более ранних, клавиша контекстного меню возвращает значение «Apps» вместо «ContextMenu» .

[4] Клавиша Attn генерирует значение «Unidentified» в Internet Explorer (проверено в версиях 9 и 11). В Firefox и Google Chrome происходит то же, если только не действует японская раскладка клавиатуры, то в этом случае она генерирует вместо неё «KanaMode» .

[5] Клавиша Finish генерирует значение «Unidentified» в Internet Explorer (проверено в версиях 9 и 11). В Firefox происходит то же, если только не действует японская раскладка клавиатуры, то в этом случае она генерирует вместо неё «Katakana» .

[6] Firefox не поддерживал клавиши «ZoomIn» и «ZoomOut» до Firefox 37.

Клавиши устройства

Значение KeyboardEvent.key Описание Виртуальный код клавиши
Windows Mac Linux Android
«BrightnessDown» Клавиша уменьшения яркости. Обычно используется для уменьшения яркости дисплея. GDK_KEY_MonBrightnessDown (0x1008FF03)
Qt::Key_MonBrightnessDown (0x010000B3)
KEYCODE_BRIGHTNESS_DOWN (220)
«BrightnessUp» Клавиша увеличения яркости. Обычно увеличивает яркость дисплея. GDK_KEY_MonBrightnessUp (0x1008FF02)
Qt::Key_MonBrightnessUp (0x010000B2)
KEYCODE_BRIGHTNESS_UP (221)
«Eject» Клавиша извлечения Eject . Извлекает съёмный носитель (или переключает лоток оптического дисковода, открывая и закрывая его). GDK_KEY_Eject (0x1008FF2C)
Qt::Key_Eject (0x010000B9)
KEYCODE_MEDIA_EJECT (129)
«LogOff» [2] Клавиша выход из системы LogOff . GDK_KEY_LogOff (0x1008FF61)
Qt::Key_LogOff (0x010000D9)
«Power» Кнопка или клавиша питания Power для включения и выключения питания.
KEYCODE_POWER (26) «PowerOff» Кнопка выключения компьютера PowerOff или PowerDown . GDK_KEY_PowerDown (0x1008FF21)
GDK_KEY_PowerOff (0x1008FF2A)
Qt::Key_PowerDown (0x0100010B)
Qt::Key_PowerOff (0x010000B7) «PrintScreen» Клавиша PrintScreen или PrtScr . Иногда SnapShot . Делает снимок экрана. VK_SNAPSHOT (0x2C) GDK_KEY_3270_PrintScreen (0xFD1D)
GDK_KEY_Print (0xFF61)
GDK_KEY_Sys_Req (0xFF15)
Qt::Key_Print (0x01000009)
Qt::Key_SysReq (0x0100000A) KEYCODE_SYSRQ (120) «Hibernate» [2] Клавиша гибернации Hibernate . Состояние компьютера сохраняется на диске, а затем выключается; компьютер может быть возвращён в предыдущее состояние путём восстановления сохранённой информации о состоянии. GDK_KEY_Hibernate (0x1008FFA8)
Qt::Key_Hibernate (0x01000108) «Standby» [1] Клавиша сна Standby . (Также известна как Suspend или Sleep .) Выключает дисплей и переводит компьютер в режим низкого энергопотребления, не выключая его полностью. VK_SLEEP (0x5F) GDK_KEY_Standby (0x1008FF10)
GDK_KEY_Suspend (0x1008FFA7)
GDK_KEY_Sleep (0x1008FF2F)
Qt::Key_Standby (0x01000093)
Qt::Key_Suspend (0x0100010C)
Qt::Key_Sleep (0x01020004) KEYCODE_SLEEP (223) «WakeUp» [2] Клавиша пробуждения WakeUp . Используется для вывода компьютера из режима гибернации или ожидания. GDK_KEY_WakeUp (0x1008FF2B)
Qt::Key_WakeUp (0x010000B8) KEYCODE_WAKEUP (224)

[1] Клавиша Standby не поддерживается Internet Explorer (проверено в версиях 9 и 11) и Firefox 36 и более ранних, поэтому возвращала «Unidentified» .

[2] До Firefox 37, эта клавиша генерировала значение «Unidentified» .

IME и клавиши композиции

Клавиши, используемые при использовании редактора метода ввода (IME) для ввода текста, который не может быть легко введён с помощью простых нажатий клавиш, например текста на языках, которые имеют больше графем, чем клавиш ввода символов на клавиатуре. Общие примеры включают китайский, японский, корейский и хинди.

Некоторые клавиши являются общими для нескольких языков, в то время как другие существуют только на клавиатурах, ориентированных на определённые языки. Кроме того, не все клавиатуры имеют все эти клавиши.

Обычные IME клавиши

A dead «combining» key; that is, a key which is used in tandem with other keys to generate accented and other modified characters. If pressed by itself, it doesn’t generate a character.

If you wish to identify which specific dead key was pressed (in cases where more than one exists), you can do so by examining the KeyboardEvent ‘s associated compositionupdate (en-US) event’s data (en-US) property.

Значение KeyboardEvent.key Описание Виртуальный код клавиши
Windows Mac Linux Android
«AllCandidates» The All Candidates key, which starts multi-candidate mode, in which multiple candidates are displayed for the ongoing input. GDK_KEY_MultipleCandidate (0xFF3D
Qt::Key_MultipleCandidate (0x0100113D)
«Alphanumeric» The Alphanumeric key. VK_OEM_ATTN (0xF0) GDK_KEY_Eisu_Shift (0xFF2F)
GDK_KEY_Eisu_toggle (0xFF30)
Qt::Key_Eisu_Shift (0x0100112f)
Qt::Key_Eisu_toggle (0x01001130)
«CodeInput» The Code Input key, which enables code input mode, which lets the user enter characters by typing their code points (their Unicode character numbers, typically). GDK_KEY_Codeinput (0xFF37)
Qt::Key_Codeinput (0x01001137)
«Compose» The Compose key. GDK_KEY_Multi_key (0xFF20) [1]
Qt::Key_Multi_key (0x01001120)
«Convert» [4] The Convert key, which instructs the IME to convert the current input method sequence into the resulting character. VK_CONVERT (0x1C) GDK_KEY_Henkan (0xFF23)
Qt::Key_Henkan (0x01001123)
KEYCODE_HENKAN (214)
«Dead» See Dead keycodes for Linux below
«FinalMode» The Final (Final Mode) key is used on some Asian keyboards to enter final mode when using IMEs. VK_FINAL (0x18)
«GroupFirst» Switches to the first character group on an ISO/IEC 9995 keyboard. Each key may have multiple groups of characters, each in its own column. Pressing this key instructs the device to interpret keypresses as coming from the first column on subsequent keystrokes. GDK_KEY_ISO_First_Group (0xFE0C)
«GroupLast» Switches to the last character group on an ISO/IEC 9995 keyboard. GDK_KEY_ISO_Last_Group (0xFE0E)
«GroupNext» [4] Switches to the next character group on an ISO/IEC 9995 keyboard. GDK_KEY_ISO_Next_Group (0xFE08) KEYCODE_LANGUAGE_SWITCH (204)
«GroupPrevious» Switches to the previous character group on an ISO/IEC 9995 keyboard. GDK_KEY_ISO_Prev_Group (0xFE0A)
«ModeChange» [5] The Mode Change key. Toggles or cycles among input modes of IMEs. VK_MODECHANGE (0x1F) GDK_KEY_Mode_switch (0xFF7E)
GDK_KEY_script_switch (0xFF7E)
Qt::Key_Mode_switch (0x0100117E)
KEYCODE_SWITCH_CHARSET (95)
«NextCandidate» The Next Candidate function key. Selects the next possible match for the ongoing input.
«NonConvert» [2] The NonConvert («Don’t convert») key. This accepts the current input method sequence without running conversion when using an IME. VK_NONCONVERT (0x1D) GDK_KEY_Muhenkan (0xFF22)
Qt::Key_Muhenkan (0x01001122)
KEYCODE_MUHENKAN (213)
«PreviousCandidate» The Previous Candidate key. Selects the previous possible match for the ongoing input. GDK_KEY_PreviousCandidate (0xFF3E)
Qt::Key_PreviousCandidate (0x0100113E)
«Process» [3] The Process key. Instructs the IME to process the conversion. VK_PROCESSKEY (0xE5)
«SingleCandidate» [4] The Single Candidate key. Enables single candidate mode (as opposed to multi-candidate mode); in this mode, only one candidate is displayed at a time. GDK_KEY_SingleCandidate (0xFF3C)
Qt::Key_SingleCandidate (0x0100113C)

[1] В X Window System, клавиша Compose называется Multi .

[2] Клавиша NonConvert возвращает значение «Nonconvert» вместо корректного «NonConvert» в Internet Explorer (проверено в версиях 9 и 11) и Firefox версии 36 и более ранних.

[3] Клавиша Process в настоящее время возвращает «Unidentified» в Firefox и Internet Explorer. Google Chrome возвращает значение клавиши так, как если бы IME не использовался.

[4] До Firefox 37, эта клавиша возвращала «Unidentified» .

[5] Firefox генерирует значение «AltGraph» вместо «ModeChange» .

Только корейские клавиатуры

Эти клавиши доступны только на корейских клавиатурах. Существуют и другие клавиши, определённые различными платформами для корейских клавиатур, но они являются наиболее распространёнными и идентифицируются спецификацией событий пользовательского интерфейса.

Значение KeyboardEvent.key Описание Виртуальный код клавиши
Windows Mac Linux Android
«HangulMode» The Hangul (Korean character set) mode key, which toggles between Hangul and English entry modes. VK_HANGUL (0x15) [1] GDK_KEY_Hangul (0xFF31)
Qt::Key_Hangul (0x01001131)
«HanjaMode» Selects the Hanja mode, for converting Hangul characters to the more specific Hanja characters. VK_HANJA (0x19) [1] GDK_KEY_Hangul_Hanja (0xFF34)
Qt::Key_Hangul_Hanja (0x01001134)
«JunjaMode» Selects the Junja mode, in which Korean is represented using single-byte Latin characters. VK_JUNJA (0x17) GDK_KEY_Hangul_Jeonja (0xFF38)
Qt::Key_Hangul_Jeonja (0x01001138)

[1] VK_HANGUL и VK_KANA используют один и тот же числовой код клавиши в Windows, также как VK_HANJA и VK_KANJI .

Только японские клавиатуры

Эти клавиши доступны только на японских клавиатурах.

[1] До Firefox 37, клавиша Eisu ошибочно сопоставлялась «RomanCharacters» .

[2] VK_HANGUL и VK_KANA используют один и тот же числовой код клавиши в Windows, также как VK_HANJA и VK_KANJI .

[3] До Firefox 37, клавиша Hankaku (half-width) генерировала значение «HalfWidth» в Firefox. Также, этак клавиша генерировала значение «Unidentified» в Internet Explorer (проверено в версиях 9 и 11).

[4] Internet Explorer (проверено в версиях 9 и 11) возвращал «Unidentified» для клавиши Zenkaku ; Firefox 36 и более ранние определяли эту клавишу как «FullWidth» на японских раскладках клавиатуры и «Unidentified» на всех остальных раскладках клавиатуры. Firefox 37 и выше, а также все версии Google Chrome, корректно возвращают «Zenkaku» .

[5] «Unidentified» в Internet Explorer (проверено в версиях 9 и 11). Firefox 36 и более ранние определяли клавишу Romaji как «RomanCharacters» на японских клавиатурах и «Unidentified» для остальных клавиатур; исправлено на значение «Romaji» в Firefox 37 и выше.

[6] Эта клавиша возвращала «Unidentified» до Firefox 37.

Dead keycodes for Linux

Linux generates accented characters using special dead keys. Dead keys are keys which are pressed in combination with character keys to generate accented forms of those characters. You can identify which specific dead key was used (if more than one exists) by examining the KeyboardEvent ‘s associated compositionupdate (en-US) event’s data (en-US) property.

You can find a table of the dead keys and the characters they can be used with to generate accented or otherwise special characters on Linux using GTK.

The value of data (en-US) will be one of the following:

Значение KeyboardEvent.key Описание Виртуальный код клавиши
Windows Mac Linux Android
«Eisu» [1] The Eisu key. This key’s purpose is defined by the IME, but may be used to close the IME. kVK_JIS_Eisu (0x66) GDK_KEY_Eisu_toggle (0xFF2F)
Qt::Key_Eisu_toggle (0x01001130)
KEYCODE_EISU (212)
«Hankaku» [3] The Hankaku (half-width characters) key. VK_OEM_AUTO (0xF3) GDK_KEY_Hankaku (0xFF29)
Qt::Key_Hankaku (0x01001129)
«Hiragana» The Hiragana key; selects Kana characters mode. VK_OEM_COPY (0xF2) GDK_KEY_Hiragana (0xFF25)
Qt::Key_Hiragana (0x01001125)
«HiraganaKatakana» [6] Toggles between the Hiragana and Katakana writing systems. GDK_KEY_Hiragana_Katakana (0xFF27)
Qt::Key_Hiragana_Katakana (0x01001127)
KEYCODE_KATAKANA_HIRAGANA (215)
«KanaMode» The Kana Mode (Kana Lock) key. VK_KANA (0x15) [2]
VK_ATTN (0xF6)
GDK_KEY_Kana_Lock (0xFF2D)
GDK_KEY_Kana_Shift (0xFF2E)
Qt::Key_Kana_Lock (0x0100112D)
Qt::Key_Kana_Shift (0x0100112E)
«KanjiMode» The Kanji Mode key. Enables entering Japanese text using the ideographic characters of Chinese origin. VK_KANJI (0x19) [2] kVK_JIS_Kana (0x68) GDK_KEY_Kanji (0xFF21)
Qt::Key_Kanji (0x01001121)
KEYCODE_KANA (218)
«Katakana» The Katakana key. VK_OEM_FINISH (0xF1) GDK_KEY_Katakana (0xFF26)
Qt::Key_Katakana (0x01001126)
«Romaji» [5] The Romaji key; selects the Roman character set. VK_OEM_BACKTAB (0xF5) GDK_KEY_Romaji (0xFF24)
Qt::Key_Romaji (0x01001124)
«Zenkaku» [4] The Zenkaku (full width) characters key. VK_OEM_ENLW (0xF4) GDK_KEY_Zenkaku (0xFF28)
Qt::Key_Zenkaku (0x01001128)
«ZenkakuHanaku» [6] The Zenkaku/Hankaku (full width/half width) toggle key. GDK_KEY_Zenkaku_Hankaku (0xFF2A)
Qt::Zenkaku_Hankaku (0x0100112A)
Значение CompositionEvent.data Символ Комментарии
GDK_KEY_dead_grave (0xFE50) Qt::Key_Dead_Grave (0x01001250) `
GDK_KEY_dead_acute (0xFE51) Qt::Key_Dead_Acute (0x01001251) ´
GDK_KEY_dead_circumflex (0xFE52) Qt::Key_Dead_Circumflex (0x01001252) ˆ
GDK_KEY_dead_tilde (0xFE53) Qt::Key_Dead_Tilde (0x01001253) ˜
GDK_KEY_dead_perispomeni (0xFE53) ͂
GDK_KEY_dead_macron (0xFE54) Qt::Key_Dead_Macron (0x01001254) ¯
GDK_KEY_dead_breve (0xFE55) Qt::Key_Dead_Breve (0x01001255) ˘
GDK_KEY_dead_abovedot (0xFE56) Qt::Key_Dead_Abovedot (0x01001256) ˙
GDK_KEY_dead_diaeresis (0xFE57) Qt::Key_Dead_Diaeresis (0x01001257) ¨ Also called an umlaut.
GDK_KEY_dead_abovering (0xFE58) Qt::Key_Dead_Abovering (0x01001258) ˚
GDK_KEY_dead_doubleacute (0xFE59) Qt::Key_Dead_Doubleacute (0x01001259) ˝
GDK_KEY_dead_caron (0xFE5A) Qt::Key_Dead_Caron (0x0100125A) ˇ Also called a háček; used in Czech among other languages.
GDK_KEY_dead_cedilla (0xFE5B) Qt::Key_Dead_Cedilla (0x0100125B) ¸
GDK_KEY_dead_ogonek (0xFE5C) Qt::Key_Dead_Ogonek (0x0100125C) ˛ Also called a nosinė; used in Polish and Old Irish.
GDK_KEY_dead_iota (0xFE5D) Qt::Key_Dead_Iota (0x0100125D) ͅ Iota subscript.
GDK_KEY_dead_voiced_sound (0xFE5E) Qt::Key_Dead_Voiced_Sound (0x0100125E)
GDK_KEY_dead_semivoiced_sound (0xFE5F) Qt::Key_Dead_Semivoiced_Sound (0x0100125F)
GDK_KEY_dead_belowdot (0xFE60) Qt::Key_Dead_Belowdot (0x01001260) ̣̣
GDK_KEY_dead_hook (0xFE61) Qt::Key_Dead_Hook (0x01001261) ̡
GDK_KEY_dead_horn (0xFE62) Qt::Key_Dead_Horn (0x01001262) ̛
GDK_KEY_dead_stroke (0xFE63) ̶̶
GDK_KEY_dead_abovecomma (0xFE64) ̓̓
GDK_KEY_dead_psili (0xFE64) ᾿
GDK_KEY_dead_abovereversedcomma (0xFE65) ʽ
GDK_KEY_dead_dasia (0xFE65)
GDK_KEY_dead_doublegrave (0xFE66) ̏
GDK_KEY_dead_belowring (0xFE67) ˳
GDK_KEY_dead_belowmacron (0xFE68) ̱
GDK_KEY_dead_belowcircumflex (0xFE69)
GDK_KEY_dead_belowtilde (0xFE6A) ̰
GDK_KEY_dead_belowbreve (0xFE6B) ̮
GDK_KEY_dead_belowdiaeresis (0xFE6C) ̤
GDK_KEY_dead_invertedbreve (0xFE6D) ̯
GDK_KEY_dead_belowcomma (0xFE6E) ̦
GDK_KEY_dead_currency (0xFE6F)
GDK_KEY_dead_a (0xFE80)
GDK_KEY_dead_A (0xFE81)
GDK_KEY_dead_e (0xFE82)
GDK_KEY_dead_E (0xFE83)
GDK_KEY_dead_i (0xFE84)
GDK_KEY_dead_I (0xFE85)
GDK_KEY_dead_o (0xFE86)
GDK_KEY_dead_O (0xFE87)
GDK_KEY_dead_u (0xFE88)
GDK_KEY_dead_U (0xFE89)
GDK_KEY_dead_small_schwa (0xFE8A) ə
GDK_KEY_dead_capital_schwa (0xFE8B) Ə
GDK_KEY_dead_greek (0xFE8C)

Функциональные клавиши

Хотя разные платформы поддерживают разное количество функциональных клавиш общего назначения, таких как F1 – F12 (or F1 – F10 , or F1 – F15 , etc.), первые несколько конкретно определены следующим образом.

Если доступно больше функциональных клавиш, их имена продолжают представленный шаблон, продолжая увеличивать числовую часть имени каждой клавиши, так что, например, «F24» это валидное значение клавиши.

Значение KeyboardEvent.key Описание Виртуальный код клавиши
Windows Mac Linux Android
«F1» Клавиша F1 . VK_F1 (0x70) kVK_F1 (0x7A) GDK_KEY_F1 (0xFFBE)
GDK_KEY_KP_F1 (0xFF91)
Qt::Key_F1 (0x01000030)
KEYCODE_F1 (131)
«F2» Клавиша F2 . VK_F2 (0x71) kVK_F2 (0x78) GDK_KEY_F2 (0xFFBF)
GDK_KEY_KP_F2 (0xFF92)
Qt::Key_F2 (0x01000031)
KEYCODE_F2 (132)
«F3» Клавиша F3 . VK_F3 (0x72) kVK_F3 (0x63) GDK_KEY_F3 (0xFFC0)
GDK_KEY_KP_F3 (0xFF93)
Qt::Key_F3 (0x01000032)
KEYCODE_F3 (133)
«F4» Клавиша F4 . VK_F4 (0x73) kVK_F4 (0x76) GDK_KEY_F4 (0xFFC1)
GDK_KEY_KP_F4 (0xFF94)
Qt::Key_F4 (0x01000033)
KEYCODE_F4 (134)
«F5» Клавиша F5 . VK_F5 (0x74) kVK_F5 (0x60) GDK_KEY_F5 (0xFFC2)
Qt::Key_F5 (0x01000034)
KEYCODE_F5 (135)
«F6» Клавиша F6 . VK_F6 (0x75) kVK_F6 (0x61) GDK_KEY_F6 (0xFFC3)
Qt::Key_F6 (0x01000035)
KEYCODE_F6 (136)
«F7» Клавиша F7 . VK_F7 (0x76) kVK_F7 (0x62) GDK_KEY_F7 (0xFFC4)
Qt::Key_F7 (0x01000036)
KEYCODE_F7 (137)
«F8» Клавиша F8 . VK_F8 (0x77) kVK_F8 (0x64) GDK_KEY_F8 (0xFFC5)
Qt::Key_F8 (0x01000037)
KEYCODE_F8 (138)
«F9» Клавиша F9 . VK_F9 (0x78) kVK_F9 (0x65) GDK_KEY_F9 (0xFFC6)
Qt::Key_F9 (0x01000038)
KEYCODE_F9 (139)
«F10» Клавиша F10 . VK_F10 (0x79) kVK_F10 (0x6D) GDK_KEY_F10 (0xFFC7)
Qt::Key_F10 (0x01000039)
KEYCODE_F10 (140)
«F11» Клавиша F11 . VK_F11 (0x7A) kVK_F11 (0x67) GDK_KEY_F11 (0xFFC8)
Qt::Key_F11 (0x0100003A)
KEYCODE_F11 (141)
«F12» Клавиша F12 . VK_F12 (0x7B) kVK_F12 (0x6F) GDK_KEY_F12 (0xFFC9)
Qt::Key_F12 (0x0100003B)
KEYCODE_F12 (142)
«F13» Клавиша F13 . VK_F13 (0x7C) kVK_F13 (0x69) GDK_KEY_F13 (0xFFCA)
Qt::Key_F13 (0x0100003C)
KEYCODE_F13
«F14» Клавиша F14 . VK_F14 (0x7D) kVK_F14 (0x6B) GDK_KEY_F14 (0xFFCB)
Qt::Key_F1 4 (0x0100003D)
KEYCODE_F14
«F15» Клавиша F15 . VK_F15 (0x7E) kVK_F15 (0x71) GDK_KEY_F15 (0xFFCC)
Qt::Key_F1 5 (0x0100003E)
KEYCODE_F15
«F16» Клавиша F16 . VK_F16 (0x7F) kVK_F16 (0x6A) GDK_KEY_F16 (0xFFCD)
Qt::Key_F1 6 (0x0100003F)
KEYCODE_F16
«F17» Клавиша F17 . VK_F17 (0x80) kVK_F17 (0x40) GDK_KEY_F17 (0xFFCE)
Qt::Key_F1 7 (0x01000040)
KEYCODE_F17
«F18» Клавиша F18 . VK_F18 (0x81) kVK_F18 (0x4F) GDK_KEY_F18 (0xFFCF)
Qt::Key_F1 8 (0x01000041)
KEYCODE_F18
«F19» Клавиша F19 . VK_F19 (0x82) kVK_F19 (0x50) GDK_KEY_F19 (0xFFD0)
Qt::Key_F1 9 (0x01000042)
KEYCODE_F19
«F20» Клавиша F20 . VK_F20 (0x83) kVK_F20 (0x5A) GDK_KEY_F20 (0xFFD1)
Qt::Key_F20 (0x01000043)
KEYCODE_F20
«Soft1» Первая функциональная клавиша общего назначения. Qt::Key_Context1 (0x01100000)
«Soft2» Вторая функциональная клавиша общего назначения. Qt::Key_Context2 (0x01100001)
«Soft3» Третья функциональная клавиша общего назначения. Qt::Key_Context3 (0x01100002)
«Soft4» Четвёртая функциональная клавиша общего назначения. Qt::Key_Context4 (0x01100003)

Телефонные клавиши

Эти клавиши представляют собой кнопки, которые обычно существуют на современных смартфонах.

Значение KeyboardEvent.key Описание Виртуальный код клавиши
Windows Mac Linux Android
«AppSwitch» Представляет список недавно использованных приложений, который позволяет пользователю быстро переключаться между приложениями. KEYCODE_APP_SWITCH (181)
«Call» Кнопка вызова Call . Набирает номер, который был введён. Qt::Key_Call (0x01100004) KEYCODE_CALL (5)
«Camera» Кнопка камеры Camera . Включает камеру. Qt::Key_Camera (0x01100020) KEYCODE_CAMERA (27)
«CameraFocus» Кнопка фокусировки Focus . Фокусирует камеру. Qt::Key_CameraFocus (0x01100021) KEYCODE_FOCUS (80)
«EndCall» Кнопка завершения вызова End Call или Hang Up . Qt::Key_Hangup (0x01100005) KEYCODE_ENDCALL (6)
«GoBack» Кнопка «Назад» Back . KEYCODE_BACK (4)
«GoHome» [1] Кнопка Home . Возвращает пользователя на главный экран телефона (обычно это средство запуска приложений). KEYCODE_HOME (3)
«HeadsetHook» Клавиша гарнитуры Headset Hook . Обычно это кнопка на гарнитуре, которая используется для отбоя вызовов и воспроизведения или приостановки мультимедиа. Qt::Key_ToggleCallHangup (0x01100007) KEYCODE_HEADSETHOOK (79)
«LastNumberRedial» Клавиша перенабора номера Redial . Набирает последний набранный номер. Qt::Key_LastNumberRedial (0x01100009)
«Notification» Клавиша уведомления Notification . KEYCODE_NOTIFICATION (83)
«MannerMode» Кнопка, которая циклически переключается между режимами уведомлений: бесшумный, вибрировать, звонить и так далее. KEYCODE_MANNER_MODE (205)
«VoiceDial» Клавиша Voice Dial . Запускает голосовой набор. Qt::Key_VoiceDial (0x01100008) KEYCODE_VOICE_ASSIST (231)

[1] До Firefox 37, кнопка Home генерирует значение «Exit» . Начиная с Firefox 37, генерирует «MozHomeScreen» .

Мультимедийные клавиши

Мультимедийные клавиши — это дополнительные кнопки или клавиши для управления мультимедийными устройствами, которые есть на некоторых клавиатурах.

Приостанавливает воспроизведение текущего медиафайла.

Примечание: Некоторые старые приложения используют просто «паузу», но это неверно.

Значение KeyboardEvent.key Описание Виртуальный код клавиши
Windows Mac Linux Android
«ChannelDown» Переключается на предыдущий канал. APPCOMMAND_MEDIA_CHANNEL_DOWN Qt::Key_ChannelDown (0x01000119) KEYCODE_CHANNEL_DOWN (167)
«ChannelUp» Переключается на следующий канал. APPCOMMAND_MEDIA_CHANNEL_UP Qt::Key_ChannelUp (0x01000118) KEYCODE_CHANNEL_UP (166)
«MediaFastForward» [2] Запускает, продолжает или увеличивает скорость быстрой перемотки мультимедиа вперёд. APPCOMMAND_MEDIA_FAST_FORWARD GDK_KEY_AudioForward (0x1008FF97)
Qt:Key_AudioForward (0x01000102)
KEYCODE_MEDIA_FAST_FORWARD (90)
«MediaPause» APPCOMMAND_MEDIA_PAUSE GDK_KEY_AudioPause (0x1008FF31)
Qt::Key_MediaPause (0x1000085)
KEYCODE_MEDIA_PAUSE (127)
«MediaPlay» Запускает или продолжает воспроизведение мультимедиа с нормальной скоростью, если ещё не делает этого. В противном случае не имеет эффекта. APPCOMMAND_MEDIA_PLAY GDK_KEY_AudioPlay (0x1008FF14) KEYCODE_MEDIA_PLAY (126)
«MediaPlayPause» Переключение между воспроизведением и приостановкой текущего медиафайла. VK_MEDIA_PLAY_PAUSE (0xB3)
APPCOMMAND_MEDIA_PLAY_PAUSE
Qt::Key_MediaTogglePlayPause (0x1000086) KEYCODE_MEDIA_PLAY_PAUSE (85)
«MediaRecord» Запуск или возобновление записи медиафайла. APPCOMMAND_MEDIA_RECORD GDK_KEY_AudioRecord (0x1008FF1C)
Qt::Key_MediaRecord (0x01000084)
KEYCODE_MEDIA_RECORD (130)
«MediaRewind» Запуск, продолжение или увеличение скорости перемотки медиафайла. APPCOMMAND_MEDIA_REWIND GDK_KEY_AudioRewind (0x1008FF3E)
Qt::Key_AudioRewind (0x010000C5)
KEYCODE_MEDIA_REWIND (89)
«MediaStop» Останавливает текущую медиа-активность (такую как воспроизведение, запись, пауза, перемотка вперёд или назад). Не действует, если медиафайл уже остановлен. VK_MEDIA_STOP (0xB2)
APPCOMMAND_MEDIA_STOP
GDK_KEY_AudioStop (0x1008FF15)
Qt::Key_MediaStop (0x01000081)
KEYCODE_MEDIA_STOP (86)
«MediaTrackNext» [1] Seeks to the next media or program track. VK_MEDIA_NEXT_TRACK (0xB0)
APPCOMMAND_MEDIA_NEXTTRACK
GDK_KEY_AudioNext (0x1008FF17)
Qt::Key_MediaNext (0x01000083)
KEYCODE_MEDIA_NEXT (87)
«MediaTrackPrevious» [1] Seeks to the previous media or program track. VK_MEDIA_PREV_TRACK (0xB1)
APPCOMMAND_MEDIA_PREVIOUSTRACK
GDK_KEY_AudioPrev (0x1008FF16)
Qt::Key_MediaPrevious (0x01000082)
KEYCODE_MEDIA_PREVIOUS (88)

[1] Internet Explorer, Edge, и Firefox (36 и более ранние) используют «MediaNextTrack» и «MediaPreviousTrack» вместо «MediaTrackNext» и «MediaTrackPrevious» .

[2] До Firefox 37, Firefox генерировал значение «FastFwd» на некоторых платформах и «Unidentified» на других вместо «MediaFastForward» .

Клавиши управления звуком

Эти мультимедийные клавиши используются специально для управления звуком.

Значение KeyboardEvent.key Описание Виртуальный код клавиши
Windows Mac Linux Android
«AudioBalanceLeft» Регулирует баланс звука влево. VK_AUDIO_BALANCE_LEFT
«AudioBalanceRight» Регулирует баланс звука вправо. VK_AUDIO_BALANCE_RIGHT
«AudioBassDown» Уменьшает количество басов. APPCOMMAND_BASS_DOWN
«AudioBassBoostDown» Уменьшает степень усиления басов или циклически перемещается вниз по набору режимов или состояний усиления басов. VK_BASS_BOOST_DOWN
«AudioBassBoostToggle» Включает и выключает усиление басов. APPCOMMAND_BASS_BOOST
«AudioBassBoostUp» Увеличивает степень усиления басов или циклически перемещается вверх по набору режимов или состояний усиления басов. VK_BASS_BOOST_UP
«AudioBassUp» Увеличивает количество басов. APPCOMMAND_BASS_UP
«AudioFaderFront» Смещает регулятор уровня сигнала вперёд. VK_FADER_FRONT
«AudioFaderRear» Смещает регулятор уровня сигнала назад. VK_FADER_REAR
«AudioSurroundModeNext» Выбор следующего доступного режима объёмного звучания. VK_SURROUND_MODE_NEXT
«AudioTrebleDown» Уменьшает количество высоких частот. APPCOMMAND_TREBLE_DOWN
«AudioTrebleUp» Отключает звук. APPCOMMAND_TREBLE_UP
«AudioVolumeDown» [1] Уменьшает громкость звука. VK_VOLUME_DOWN (0xAE)
APPCOMMAND_VOLUME_DOWN
kVK_VolumeDown (0x49) GDK_KEY_AudioLowerVolume (0x1008FF11)
Qt::Key_VolumeDown (0x01000070)
KEYCODE_VOLUME_DOWN (25)
«AudioVolumeMute» [1] Отключает звук. VK_VOLUME_MUTE (0xAD)
APPCOMMAND_VOLUME_MUTE
kVK_Mute (0x4A) GDK_KEY_AudioMute (0x1008FF12)
Qt::Key_VolumeMute (0x01000071)
KEYCODE_VOLUME_MUTE (164)
«AudioVolumeUp» [1] Увеличивает громкость звука. VK_VOLUME_UP (0xAF)
APPCOMMAND_VOLUME_UP
kVK_VolumeUp (0x48) GDK_KEY_AudioRaiseVolume (0x1008FF13)
Qt::Key_VolumeUp (0x01000072)
KEYCODE_VOLUME_UP (24)
«MicrophoneToggle» Включает и выключает микрофон. APPCOMMAND_MIC_ON_OFF_TOGGLE
«MicrophoneVolumeDown» Уменьшает громкость входного сигнала микрофона. APPCOMMAND_MICROPHONE_VOLUME_DOWN Qt::Key_MicVolumeDown (0x0100011E)
«MicrophoneVolumeMute» Отключает микрофонный вход. APPCOMMAND_MICROPHONE_VOLUME_MUTE GDK_KEY_AudioMicMute (0x1008FFB2)
Qt::Key_MicMute (0x01000113)
KEYCODE_MUTE (91)
«MicrophoneVolumeUp» Увеличивает громкость входного сигнала микрофона. APPCOMMAND_MICROPHONE_VOLUME_UP Qt::Key_MicVolumeUp (0x0100011D)

[1] Internet Explorer, Edge, и Firefox (48 и более ранние) используют «VolumeUp» , «VolumeDown» , и «VolumeMute» вместо «AudioVolumeUp» , «AudioVolumeDown» , и «AudioVolumeMute» . В Firefox 49 они были обновлены в соответствии с последней спецификацией. Старые имена все ещё используются в Boot to Gecko.

Клавиши управления ТВ

Эти ключевые значения представляют собой кнопки или клавиши на телевизионных устройствах, компьютерах или телефонах с поддержкой телевидения.

Значение KeyboardEvent.key Описание Виртуальный код клавиши
Windows Mac Linux Android
«TV» [1] Переключает в режим просмотра ТВ. KEYCODE_TV (170)
«TV3DMode» Включает и выключает режим 3D TV. KEYCODE_3D_MODE (206)
«TVAntennaCable» Переключение между антенным и кабельным входами. KEYCODE_TV_ANTENNA_CABLE (242)
«TVAudioDescription» Включает и выключает режим описания звука. KEYCODE_TV_AUDIO_DESCRIPTION (252)
«TVAudioDescriptionMixDown» Уменьшает громкость микширования аудиоописаний; уменьшает громкость аудиоописаний относительно звука программы. KEYCODE_TV_AUDIO_DESCRIPTION_MIX_DOWN (254)
«TVAudioDescriptionMixUp» Увеличивает громкость микширования аудиоописаний; увеличивает громкость аудиоописаний относительно звука программы. KEYCODE_TV_AUDIO_DESCRIPTION_MIX_UP (253)
«TVContentsMenu» Отображает или скрывает мультимедийное содержимое, доступное для воспроизведения (это может быть руководство по каналам, показывающее программы, транслируемые в данный момент, или список мультимедийных файлов для воспроизведения). KEYCODE_TV_CONTENTS_MENU (256)
«TVDataService» Отображает или скрывает сервисное меню данных телевизора. KEYCODE_TV_DATA_SERVICE (230)
«TVInput» [2] Переключает источник сигнала на внешнем телевизоре. KEYCODE_TV_INPUT (178)
«TVInputComponent1» Переключает на вход «Компонент 1». KEYCODE_TV_INPUT_COMPONENT_1 (249)
«TVInputComponent2» Переключает на вход «Компонент 2.» KEYCODE_TV_INPUT_COMPONENT_2 (250)
«TVInputComposite1» Переключает на вход «Композитный 1». KEYCODE_TV_INPUT_COMPOSITE_1 (247)
«TVInputComposite2» Переключает на вход «Композитный 2.» KEYCODE_TV_INPUT_COMPOSITE_2 (248)
«TVInputHDMI1» Переключает на вход «HDMI 1». KEYCODE_TV_INPUT_HDMI_1 (243)
«TVInputHDMI2» Переключает на вход «HDMI 2.» KEYCODE_TV_INPUT_HDMI_2 (244)
«TVInputHDMI3» Переключает на вход «HDMI 3.» KEYCODE_TV_INPUT_HDMI_3 (245)
«TVInputHDMI4» Переключает на вход «HDMI 4.» KEYCODE_TV_INPUT_HDMI_4 (246)
«TVInputVGA1» Переключает на вход «VGA 1.» KEYCODE_TV_INPUT_VGA_1 (251)
«TVMediaContext» Клавиша контекстного меню мультимедиа. KEYCODE_TV_MEDIA_CONTEXT_MENU (257)
«TVNetwork» Включение и выключение сетевого подключения телевизора. KEYCODE_TV_NETWORK (241)
«TVNumberEntry» Переведите телевизор в режим ввода номера. KEYCODE_TV_NUMBER_ENTRY (234)
«TVPower» [2] Кнопка питания устройства. KEYCODE_TV_POWER (177)
«TVRadioService» Кнопка радио KEYCODE_TV_RADIO_SERVICE (232)
«TVSatellite» Кнопка спутника KEYCODE_TV_SATELLITE (237)
«TVSatelliteBS» Broadcast Satellite button. KEYCODE_TV_SATELLITE_BS (238)
«TVSatelliteCS» Communication Satellite button. KEYCODE_TV_SATELLITE_CS (239)
«TVSatelliteToggle» Переключение между доступными спутниками. KEYCODE_TV_SATELLITE_SERVICE (240)
«TVTerrestrialAnalog» Выбирает услугу аналогового наземного телевидения (аналоговый кабельный или антенный приём). KEYCODE_TV_TERRESTRIAL_ANALOG (235)
«TVTerrestrialDigital» Выбирает услугу цифрового наземного телевидения (цифровой кабельный или антенный приём). KEYCODE_TV_TERRESTRIAL_DIGITAL (236)
«TVTimer» Кнопка программирования таймера. KEYCODE_TV_TIMER_PROGRAMMING (258)

[1] В Firefox добавлена надлежащая поддержка для клавиши «TV» в Firefox 37; до этого, эта клавиша генерировала значение «Live» .

[2] Эти клавиши возвращали «Unidentified» до Firefox 37.

Клавиши медиа-контроллера

Поскольку современные пульты дистанционного управления для мультимедийных устройств часто включают кнопки, помимо базовых элементов управления, описанных в другом месте в этом документе, ключевые значения определены для широкого набора этих дополнительных кнопок.

Приведённые ниже значения частично получены из ряда технических характеристик бытовой электроники:

Примечание: Пульт дистанционного управления обычно содержит кнопки, значения которых уже определены где-то ещё, например Мультимедийные клавиши или Клавиши управления звуком. Значения этих кнопок будут соответствовать тому, что задокументировано в этих таблицах.

Значение KeyboardEvent.key Описание Виртуальный код клавиши
Windows Mac Linux Android
«AVRInput» [3] Изменяет источник сигнала на внешнем аудио / видео ресивере (AVR). KEYCODE_AVR_INPUT (182)
«AVRPower» [3] Переключает питание внешнего блока AVR. KEYCODE_AVR_POWER (181)
«ColorF0Red» [3] Универсальная функциональная клавиша мультимедиа красного цвета. Она имеет индекс 0 среди цветных клавиш. VK_COLORED_KEY_0 KEYCODE_PROG_RED (183)
«ColorF1Green» [3] Универсальная функциональная клавиша мультимедиа зелёного цвета. Она имеет индекс 1 среди цветных клавиш. VK_COLORED_KEY_1 KEYCODE_PROG_GREEN (184)
«ColorF2Yellow» [3] Универсальная функциональная клавиша мультимедиа жёлтого цвета. Она имеет индекс 2 среди цветных клавиш. VK_COLORED_KEY_2 KEYCODE_PROG_YELLOW (185)
«ColorF3Blue» [3] Универсальная функциональная клавиша мультимедиа синего цвет. Она имеет индекс 3 среди цветных клавиш. VK_COLORED_KEY_3 KEYCODE_PROG_BLUE (186)
«ColorF4Grey» Универсальная функциональная клавиша мультимедиа серого цвета. Она имеет индекс 4 среди цветных клавиш. VK_COLORED_KEY_4 KEYCODE_PROG_GREY
«ColorF5Brown» Универсальная функциональная клавиша мультимедиа коричневого цвета. Она имеет индекс 5 среди цветных клавиш. VK_COLORED_KEY_5 KEYCODE_PROG_BROWN
«ClosedCaptionToggle» Включает и выключает скрытые субтитры. VK_CC KEYCODE_CAPTIONS (175)
«Dimmer» Регулирует яркость устройства, переключаясь между двумя уровнями яркости или переключаясь между несколькими уровнями яркости. VK_DIMMER GDK_KEY_BrightnessAdjust (0x1008FF3B)
«DisplaySwap» Циклически переключает источники видео VK_DISPLAY_SWAP
«DVR» Переключает источник входного сигнала на цифровой видеорегистратор (DVR). KEYCODE_DVR (173)
«Exit» Кнопка «Выход» для выхода из текущего приложения или меню. VK_EXIT Qt::Key_Exit (0x0102000a)
«FavoriteClear0» Очищает первый слот списка избранного. VK_CLEAR_FAVORITE_0
«FavoriteClear1» Очищает второй слот списка избранного. VK_CLEAR_FAVORITE_1
«FavoriteClear2» Очищает третий слот списка избранного. VK_CLEAR_FAVORITE_2
«FavoriteClear3» Очищает четвёртый слот списка избранного. VK_CLEAR_FAVORITE_3
«FavoriteRecall0» Выбирает (вызывает) программу или содержимое, хранящееся в первом слоте списка избранного. VK_RECALL_FAVORITE_0
«FavoriteRecall1» Выбирает (вызывает) программу или содержимое, хранящееся во втором слоте списка избранного. VK_RECALL_FAVORITE_1
«FavoriteRecall2» Выбирает (вызывает) программу или содержимое, хранящееся в третьем слоте списка избранного. VK_RECALL_FAVORITE_2
«FavoriteRecall3» Выбирает (вызывает) программу или содержимое, хранящееся в четвёртом слоте списка избранного. VK_RECALL_FAVORITE_3
«FavoriteStore0» Сохраняет текущую программу или контент в первый слот списка избранного. VK_STORE_FAVORITE_0
«FavoriteStore1» Сохраняет текущую программу или контент во второй слот списка избранного. VK_STORE_FAVORITE_1
«FavoriteStore2» Сохраняет текущую программу или контент в третий слот списка избранного. VK_STORE_FAVORITE_2
«FavoriteStore3» Сохраняет текущую программу или контент в четвёртый слот списка избранного. VK_STORE_FAVORITE_3
«Guide» Переключает отображение программы или содержимого, содержащего руководство. VK_GUIDE Qt::Key_Guide (0x0100011A) KEYCODE_GUIDE (172)
«GuideNextDay» Если руководство отображается в данный момент, эта кнопка указывает руководству отобразить содержимое на следующий день. VK_NEXT_DAY
«GuidePreviousDay» Если руководство отображается в данный момент, эта кнопка указывает руководству отобразить содержимое предыдущего дня. VK_PREV_DAY
«Info» Переключает отображение информации о текущем выбранном содержимом, программе или медиа. VK_INFO Qt::Key_Info (0x0100011B) KEYCODE_INFO (165)
«InstantReplay» Указывает устройству выполнить мгновенное перевоспроизведение (обычно это некоторая форма возврата на короткий промежуток времени с последующим воспроизведением, возможно, но обычно не в замедленном режиме). VK_INSTANT_REPLAY
«Link» Открывает содержимое, связанное с текущей программой, если это возможно и доступно. VK_LINK
«ListProgram» Список текущей программы. VK_LIST
«LiveContent» Переключает отображение списка доступного в данный момент live-содержимого или программ. VK_LIVE
«Lock» Блокирует и разблокирует текущее выбранное содержимое или программу. VK_LOCK
«MediaApps» Представляет список мультимедийных приложений, таких как программы просмотра фотографий, аудио- и видеоплееры, а также игры. [1] VK_APPS
«MediaAudioTrack» Клавиша звуковой дорожки. GDK_KEY_AudioCycleTrack (0x1008FF9B)
Qt::Key_AudioCycleTrack (0x01000106)
KEYCODE_MEDIA_AUDIO_TRACK (222)
«MediaLast» Возврат к последнему просмотренному содержимому, программе или другому медиафайлу. VK_LAST Qt::Key_MediaLast (0x0100FFFF) KEYCODE_LAST_CHANNEL (229)
«MediaSkipBackward» Переход назад к предыдущему содержимому или программе. KEYCODE_MEDIA_SKIP_BACKWARD
«MediaSkipForward» Переход к следующему содержимому или программе. VK_SKIP KEYCODE_MEDIA_SKIP_FORWARD
«MediaStepBackward» Переход назад к предыдущему содержимому или программе. KEYCODE_MEDIA_STEP_BACKWARD
«MediaStepForward» Переход к следующему содержимому или программе. KEYCODE_MEDIA_SKIP_FORWARD
«MediaTopMenu» Кнопка верхнего меню. Открывает главное меню носителя (например, для диска DVD или Blu-Ray). Qt::Key_TopMenu (0x0100010A) KEYCODE_MEDIA_TOP_MENU
«NavigateIn» Переход в подменю или параметр. KEYCODE_NAVIGATE_IN
«NavigateNext» Переход к следующему элементу. KEYCODE_NAVIGATE_NEXT
«NavigateOut» Переход из текущего экрана или меню. KEYCODE_NAVIGATE_OUT
«NavigatePrevious» Переход к предыдущему элементу. KEYCODE_NAVIGATE_PREVIOUS
«NextFavoriteChannel» Циклически переходит на следующий канал в списке избранного. VK_NEXT_FAVORITE_CHANNEL
«NextUserProfile» Циклически переходит к следующему сохранённому профилю пользователя, если эта функция поддерживается и существует несколько профилей. VK_USER
«OnDemand» Открывает пользовательский интерфейс для выбора содержимого или программ по запросу для просмотра. VK_ON_DEMAND
«Pairing» Запускает процесс сопряжения пульта дистанционного управления с управляемым устройством. KEYCODE_PAIRING (225)
«PinPDown» Кнопка для перемещения изображения «картинка в картинке» вниз. VK_PINP_DOWN
«PinPMove» Кнопка для управления перемещением изображения «картинка в картинке». VK_PINP_MOVE
«PinPToggle» Включает и выключает отображение изображения в «картинка в картинке». VK_PINP_TOGGLE
«PinPUp» Кнопка для перемещения изображения «картинка в картинке» вверх. VK_PINP_UP
«PlaySpeedDown» Уменьшает скорость воспроизведения мультимедиа. VK_PLAY_SPEED_DOWN
«PlaySpeedReset» Возвращает нормальную скорость воспроизведения мультимедиа. VK_PLAY_SPEED_RESET
«PlaySpeedUp» Увеличивает скорость воспроизведения мультимедиа. VK_PLAY_SPEED_UP
«RandomToggle» Включает и выключает случайные медиафайлы (также известно как «режим случайного воспроизведения»). VK_RANDOM_TOGGLE GDK_KEY_AudioRandomPlay (0x1008FF99)
«RcLowBattery» Код, отправляемый при низком заряде батареи пульта ДУ. Это вообще не соответствует физической кнопке/клавише. VK_RC_LOW_BATTERY
«RecordSpeedNext» Циклически переключает доступные скорости записи на носитель. VK_RECORD_SPEED_NEXT
«RfBypass» Включает и выключает режим пропуска радиочастотного (RF) входа. В режиме пропуска РЧ входной сигнал передаётся непосредственно на выход РЧ без какой-либо обработки или фильтрации. VK_RF_BYPASS
«ScanChannelsToggle» Включает и выключает режим сканирования каналов. Это режим, который автоматически переключает каналы, пока пользователь не остановит сканирование. VK_SCAN_CHANNELS_TOGGLE
«ScreenModeNext» Циклически переключает доступные режимы отображения экрана. VK_SCREEN_MODE_NEXT
«Settings» Включает и выключает отображение экрана настроек устройства. VK_SETTINGS Qt::Key_Settings (0x0100011C) KEYCODE_SETTINGS
«SplitScreenToggle» Включает и выключает режим разделения экрана. VK_SPLIT_SCREEN_TOGGLE GDK_KEY_SplitScreen ( 0x1008FF7D)
Qt::Key_SplitScreen (0x010000ED)
«STBInput» [3] Переключение между источниками сигнала на внешней приставке (STB). KEYCODE_STB_INPUT (180)
«STBPower» [3] Включает и выключает внешний STB. KEYCODE_STB_POWER (179)
«Subtitle» Включает и выключает отображение субтитров, если они доступны. VK_SUBTITLE GDK_KEY_Subtitle (0x1008FF9A) KEYCODE_CAPTIONS (175)
«Teletext» Включает и выключает отображение [телетекста](https://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D0%BB%D0%B5%D1%82%D0%B5%D0%BA%D1%81%D1%82), если доступно. VK_TELETEXT KEYCODE_TV_TELETEXT (233)
«VideoModeNext» [3] Перебирает доступные видеорежимы. VK_VIDEO_MODE_NEXT GDK_KEY_Next_VMode (0x1008FE22)
«Wink» Заставляет устройство идентифицировать себя каким-либо образом, например, мигает светом, на короткое время меняет яркость световых индикаторов или издаёт звуковой сигнал. VK_WINK
«ZoomToggle» [2] Переключает между полноэкранным и масштабированным отображением содержимого или иным образом изменяет уровень увеличения. VK_ZOOM (0xFB) Qt::Key_Zoom (0x01020006) KEYCODE_TV_ZOOM_MODE (255)

[1] Не путайте клавишу медиа-контроллера VK_APPS с клавишей Windows VK_APPS , которая также известна как VK_CONTEXT_MENU . Эта клавиша возвращает значение «ContextMenu» .

[2] Internet Explorer (проверено в версиях 9 и 11) и Firefox 36 и более ранние определяли кнопку переключения масштаба как «Zoom» . В Firefox 37 исправлено на «ZoomToggle» .

[3] Эти клавиши возвращали «Unidentified» до Firefox 37.

Клавиши распознавания речи

Эти специальные мультимедийные клавиши используются для управления функциями распознавания речи.

Значение KeyboardEvent.key Описание Виртуальный код клавиши
Windows Mac Linux Android
«SpeechCorrectionList» [1] Представляет список возможных исправлений неверно определённого слова. APPCOMMAND_CORRECTION_LIST
«SpeechInputToggle» [2] Переключение между режимом диктовки и режимом команд/управления. Это позволяет механизму обработки речи знать, интерпретировать ли произносимые слова как вводимый текст или как команды. APPCOMMAND_DICTATE_OR_COMMAND_CONTROL_TOGGLE

[1] В Windows команда APPCOMMAND_CORRECTION_LIST генерирует значение «Unidentified» в Firefox.

[2] В Windows команда APPCOMMAND_DICTATE_OR_COMMAND_CONTROL_TOGGLE генерирует значение «Unidentified» в Firefox.

Клавиши документа

Эти клавиши управляют документами. В спецификации они включены в другие наборы клавиш(например, мультимедийные), но разумнее выделять их в собственную категорию.

Значение KeyboardEvent.key Описание Виртуальный код клавиши
Windows Mac Linux Android
«Close» [1] Закрывает текущий документ или сообщение. Не должен выходить из приложения. APPCOMMAND_CLOSE GDK_KEY_Close (0x1008FF56)
Qt::Key_Close (0x010000CE)
KEYCODE_MEDIA_CLOSE (128)
«New» [1] Создаёт новый документ или сообщение. APPCOMMAND_NEW GDK_KEY_New (0x1008FF68)
Qt::Key_New (0x01000120)
«Open» [1] Открывает существующий документ или сообщение. APPCOMMAND_OPEN GDK_KEY_Open (0x1008FF6B)
Qt::Key_Open (0x01000121)
«Print» Печатает текущий документ или сообщение. APPCOMMAND_PRINT GDK_KEY_Print (0xFF61)
Qt::Print (0x01000009)
«Save» [1] Сохраняет текущий документ или сообщение. APPCOMMAND_SAVE GDK_KEY_Save (0x1008FF77)
Qt::Key_Save (0x010000EA)
«SpellCheck» [1] Запускает проверку орфографии в текущем документе. APPCOMMAND_SPELL_CHECK GDK_KEY_Spell (0x1008FF7C)
Qt::Key_Spell (0x010000EC)
«MailForward» [1] Открывает пользовательский интерфейс для пересылки сообщения. APPCOMMAND_FORWARD_MAIL GDK_KEY_MailForward (0x1008FF90)
Qt::Key_MailForward (0x010000FB)
«MailReply» [1] Открывает пользовательский интерфейс для ответа на сообщение. APPCOMMAND_REPLY_TO_MAIL GDK_KEY_Reply (0x1008FF72)
Qt::Key_Reply (0x010000E5)
«MailSend» [1] Отправляет текущее сообщение. APPCOMMAND_SEND_MAIL GDK_KEY_Send (0x1008FF7B)
Qt::Key_Send (0x010000EB)

[1] До Firefox 37, эта клавиша генерировала значение «Unidentified» .

Клавиши приложений

На некоторых клавиатурах есть специальные клавиши для запуска определённых распространённых приложений или переключения на них. Значения клавиш для них перечислены здесь.

Значение KeyboardEvent.key Описание Виртуальный код клавиши
Windows Mac Linux Android
«LaunchCalculator» [5] Клавиша запуска калькулятора Calculator , часто помечается значком. Часто используется в качестве общей клавиши запуска приложений ( APPCOMMAND_LAUNCH_APP2 ). APPCOMMAND_LAUNCH_APP2 GDK_KEY_Calculator (0x1008FF1D)
Qt::Key_Calculator (0x010000CB)
KEYCODE_CALCULATOR (210)
«LaunchCalendar» [5] Клавиша календаря Calendar . Часто помечается значком. GDK_KEY_Calendar (0x1008FF20)
Qt::Key_Calendar (0x010000E4)
KEYCODE_CALENDAR (208)
«LaunchContacts» Клавиша «Контакты» Contacts . KEYCODE_CONTACTS (207)
«LaunchMail» Клавиша электронной почты Mail . Часто помечается значком. VK_LAUNCH_MAIL (0xB4)
APPCOMMAND_LAUNCH_MAIL
GDK_KEY_Mail (0x1008FF19)
Qt::Key_LaunchMail (0x010000A0)
KEYCODE_ENVELOPE (65)
«LaunchMediaPlayer» [1] Клавиша медиаплеера Media Player . Часто помечается значком. VK_LAUNCH_MEDIA_SELECT (0xB5)
APPCOMMAND_LAUNCH_MEDIA_SELECT
GDK_KEY_CD (0x1008FF53)
GDK_KEY_Video (0x1008FF87)
GDK_KEY_AudioMedia (0x1008FF32)
Qt::Key_LaunchMedia (0x010000A1)
«LaunchMusicPlayer» [5] Клавиша музыкального проигрывателя Music Player . Часто помечается значком. GDK_KEY_Music (0x1008FF92)
Qt::Key_Music (0x010000FD)
KEYCODE_MUSIC (209)
«LaunchMyComputer» [5] Клавиша «Мой компьютер» My Computer на клавиатурах Windows. Часто используется в качестве общей клавиши запуска приложений ( APPCOMMAND_LAUNCH_APP1 ). APPCOMMAND_LAUNCH_APP1 GDK_KEY_MyComputer (0x1008FF33)
GDK_KEY_Explorer (0x1008FF5D)
«LaunchPhone» Клавиша телефонии Phone . Открывает приложение для набора номера телефона (если таковое имеется). GDK_KEY_Phone (0x1008FF6E)
Qt::Key_Phone (0x010000E3)
«LaunchScreenSaver» [5] Клавиша заставки Screen Saver . GDK_KEY_ScreenSaver (0x1008FF2D)
Qt::Key_ScreenSaver (0x010000BA)
«LaunchSpreadsheet» [4] Клавиша табличного процессора Spreadsheet . Эта клавиша часто помечается значком. GDK_KEY_Excel (0x1008FF5C)
Qt::Key_Excel (0x010000D4)
«LaunchWebBrowser» [4] Клавиша веб-браузера Web Browser . Эта клавиша часто помечается значком. GDK_KEY_WWW (0x1008FF2E)
Qt::Key_WWW (0x010000BB)
KEYCODE_EXPLORER (64)
«LaunchWebCam» [5] Клавиша WebCam . Открывает приложение веб-камеры. GDK_KEY_WebCam (0x1008FF8F)
Qt::Key_WebCam (0x010000FA)
«LaunchWordProcessor» [5] Клавиша текстового процессора Word Processor . Это может быть значок конкретного приложения текстового процессора или общий значок документа. GDK_KEY_Word (0x1008FF89)
Qt::Key_Word (0x010000F4)
«LaunchApplication1» [2] 1-я общая кнопка запуска приложений. VK_LAUNCH_APP1 (0xB6)
APPCOMMAND_LAUNCH_APP1
GDK_KEY_Launch0 (0x1008FF40)
Qt::Key_Launch0 (0x010000A2)
«LaunchApplication2» [3] 2-я общая кнопка запуска приложений. VK_LAUNCH_APP2 (0xB7)
APPCOMMAND_LAUNCH_APP2
GDK_KEY_Launch1 (0x1008FF41)
Qt::Key_Launch1 (0x010000A3)
«LaunchApplication3» 3-я общая кнопка запуска приложений. GDK_KEY_Launch2 (0x1008FF42)
Qt::Key_Launch2 (0x010000A4)
«LaunchApplication4» 4-я общая кнопка запуска приложений. GDK_KEY_Launch3 (0x1008FF43)
Qt::Key_Launch3 (0x010000A5)
«LaunchApplication5» 5-я общая кнопка запуска приложений. GDK_KEY_Launch4 (0x1008FF44)
Qt::Key_Launch4 (0x010000A6)
«LaunchApplication6» 6-я общая кнопка запуска приложений. GDK_KEY_Launch5 (0x1008FF45)
Qt::Key_Launch5 (0x010000A7)
«LaunchApplication7» 7-я общая кнопка запуска приложений. GDK_KEY_Launch6 (0x1008FF46)
Qt::Key_Launch6 (0x010000A8)
«LaunchApplication8» 8-я общая кнопка запуска приложений. GDK_KEY_Launch7 (0x1008FF47)
Qt::Key_Launch7 (0x010000A9)
«LaunchApplication9» 9-я общая кнопка запуска приложений. GDK_KEY_Launch8 (0x1008FF48)
Qt::Key_Launch8 (0x010000AA)
«LaunchApplication10» 10-я общая кнопка запуска приложений. GDK_KEY_Launch9 (0x1008FF49)
Qt::Key_Launch9 (0x010000AB)
«LaunchApplication11» 11-я общая кнопка запуска приложений. GDK_KEY_LaunchA (0x1008FF4A)
Qt::Key_LaunchA (0x010000AC)
«LaunchApplication12» 12-я общая кнопка запуска приложений. GDK_KEY_LaunchB (0x1008FF4B)
Qt::Key_LaunchB (0x010000AD)
«LaunchApplication13» 13-я общая кнопка запуска приложений. GDK_KEY_LaunchC (0x1008FF4C)
Qt::Key_LaunchC (0x010000AE)
«LaunchApplication14» 14-я общая кнопка запуска приложений. GDK_KEY_LaunchD (0x1008FF4D)
Qt::Key_LaunchD (0x010000AF)
«LaunchApplication15» 15-я общая кнопка запуска приложений. GDK_KEY_LaunchE (0x1008FF4E)
Qt::Key_LaunchE (0x010000B0)
«LaunchApplication16» 16-я общая кнопка запуска приложений. GDK_KEY_LaunchF (0x1008FF4F)
Qt::Key_LaunchF (0x010000B1)

[1] Internet Explorer, Edge, и Firefox (36 и ранее) используют «SelectMedia» вместо «LaunchMediaPlayer» . Firefox 37 и Firefox 48 используют «MediaSelect» . Firefox 49 был обновлён в соответствии с последней спецификацией и теперь возвращает «LaunchMediaPlayer» .

[2] Google Chrome 57 и ранние возвращают «LaunchMyComputer» вместо «LaunchApplication1» . Смотри Chrome Bug 612743 для дополнительной информации.

[3] Google Chrome 57 и ранние возвращают «LaunchCalculator» вместо «LaunchApplication2» . Смотри Chrome Bug 612743 для дополнительной информации.

[4] До Firefox 37, Firefox возвращал the key code «LaunchApplication1″ вместо » LaunchWebBrowser» для клавиши Веб-браузера.

[5] Firefox ввёл поддержку этой клавиши в Firefox 37. До этого, эта клавиша возвращала значение «Unidentified» .

Клавиши управления браузером

На некоторых клавиатурах есть специальные клавиши для управления веб-браузерами. Это следующие клавиши.

Значение KeyboardEvent.key Описание Виртуальный код клавиши
Windows Mac Linux Android
«BrowserBack» Переход к предыдущему содержимому или странице в истории текущего веб-представления. VK_BROWSER_BACK (0xA6)
APPCOMMAND_BROWSER_BACKWARD
GDK_KEY_Back (0x1008FF26)
Qt::Key_Back (0x01000061)
KEYCODE_BACK (4)
«BrowserFavorites» [1] Открывает список закладок/избранного пользователя. VK_BROWSER_FAVORITES (0xAB)
APPCOMMAND_BROWSER_FAVORITES
GDK_KEY_Favorites (0x1008FF30)
GDK_KEY_MySites (0x1008FF67)
Qt::Favorites (0x01000091)
KEYCODE_BOOKMARK (174)
«BrowserForward» Переход к следующему содержимому или странице в истории текущего веб-представления. VK_BROWSER_FORWARD (0xA7)
APPCOMMAND_BROWSER_FORWARD
GDK_KEY_Forward (0x1008FF27)
Qt::Key_Forward (0x01000062)
KEYCODE_FORWARD (125)
«BrowserHome» Переход к домашней странице, установленной пользователем. VK_BROWSER_HOME (0xAC)
APPCOMMAND_BROWSER_HOME
GDK_KEY_HomePage (0x1008FF18)
Qt::Key_HomePage (0x01000090)
KEYCODE_HOME (3)
«BrowserRefresh» Обновление текущей страницы или содержимого. VK_BROWSER_REFRESH (0xA8)
APPCOMMAND_BROWSER_REFRESH
GDK_KEY_Refresh (0x1008FF29)
GDK_KEY_Reload (0x1008FF73)
«BrowserSearch» Активирует предпочтительную поисковую систему пользователя или интерфейс поиска в его браузере. VK_BROWSER_SEARCH (0xAA)
APPCOMMAND_BROWSER_SEARCH
GDK_KEY_Search (0x1008FF1B)
Qt::Key_Search (0x01000092)
KEYCODE_SEARCH (84)
«BrowserStop» Останавливает загрузку текущего веб-представления или содержимого. VK_BROWSER_STOP (0xA9)
APPCOMMAND_BROWSER_STOP
GDK_KEY_Stop (0x1008FF28)
Qt::Key_Search (0x01000063)

[1] До Firefox 37, эта клавиша возвращала значение «Unidentified» .

Клавиши цифрового блока

Эти клавиши находятся на цифровой панели клавиатуры. Однако не все они присутствуют на каждой клавиатуре. Хотя типичные цифровые панели имеют цифровые клавиши от 0 до 9 (кодируются как «0» — «9» ), некоторые мультимедийные клавиатуры включают дополнительные цифровые клавиши для более высоких чисел.

Примечание: Клавиша 10 , если она присутствует, генерирует события со значением ключа «0» .

Клавиша десятичной точки (обычно . или , в зависимости от региона).

В новых браузерах это значение должно быть просто символом, сгенерированным клавишей десятичной точки (одним из этих двух символов). [1]

Символ разделителя позиций на цифровой клавиатуре.

(В США это запятая, но в других странах это часто точка.)

Значение KeyboardEvent.key Описание Виртуальный код клавиши
Windows Mac Linux Android
«Decimal» [1] VK_DECIMAL (0x6E) kVK_ANSI_KeypadDecimal (0x41) GDK_KEY_KP_Decimal (0xFFAE) KEYCODE_NUMPAD_DOT (158)
«Key11» Клавиша 11 встречается на некоторых цифровых мультимедиа клавиатурах.
«Key12» Клавиша 12 встречается на некоторых цифровых мультимедиа клавиатурах..
«Multiply» [1] Клавиша умножения на цифровой панели, * . VK_MULTIPLY (0x6A) kVK_ANSI_KeypadMultiply (0x43) GDK_KEY_KP_Multiply (0xFFAA)
Qt::Key_Multiply (0x0D7)
KEYCODE_NUMPAD_MULTIPLY (155)
«Add» [1] Клавиша сложения на цифровой панели, + . VK_ADD (0x6B) kVK_ANSI_KeypadPlus (0x45) GDK_KEY_KP_Add (0xFFAB) KEYCODE_NUMPAD_ADD (157)
«Clear» Клавиша очистки на цифровой панели, Clear . kVK_ANSI_KeypadClear (0x47) GDK_KEY_Clear (0xFF0B)
Qt::Key_Clear (0x0100000B)
KEYCODE_CLEAR (28)
«Divide» [1] Клавиша деления на цифровой панели, / . VK_DIVIDE (0x6F) kVK_ANSI_KeypadDivide (0x4B) GDK_KEY_KP_Divide (0xFFAF)
Qt::Key_Slash (0x2F)
KEYCODE_NUMPAD_DIVIDE (154)
«Subtract» [1] Клавиша вычитания на цифровой панели, — . VK_SUBTRACT (0x6D) kVK_ANSI_KeypadMinus (0x4E) GDK_KEY_KP_Subtract (0xFFAD) KEYCODE_NUMPAD_SUBTRACT (156)
«Separator» [1] VK_SEPARATOR (0x6C) kVK_JIS_KeypadComma (0x5F) GDK_KEY_KP_Separator (0xFFAC) KEYCODE_NUMPAD_COMMA (159)
От «0» до «9» Фактические цифровые клавиши на цифровой панели. VK_NUMPAD0 (0x60) — VK_NUMPAD9 (0x69) kVK_Keypad0 (0x52) — kVK_Keypad9 (0x5C) GDK_KEY_KP_0 (0xFFB0) — GDK_KEY_KP_9 (0xFFB9) KEYCODE_NUMPAD_0 (144) — KEYCODE_NUMPAD_9 (153)

[1] В то время как старые браузеры использовали такие слова, как «Добавить», «Десятичное число», «Умножить» и т. д., современные браузеры идентифицируют их по фактическому символу («+», «.», «*» и т. д.).

Found a content problem with this page?

This page was last modified on 17 февр. 2023 г. by MDN contributors.

Источник

Adblock
detector