class_inputeventkey.rst 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320
  1. :github_url: hide
  2. .. DO NOT EDIT THIS FILE!!!
  3. .. Generated automatically from Godot engine sources.
  4. .. Generator: https://github.com/godotengine/godot/tree/4.2/doc/tools/make_rst.py.
  5. .. XML source: https://github.com/godotengine/godot/tree/4.2/doc/classes/InputEventKey.xml.
  6. .. _class_InputEventKey:
  7. InputEventKey
  8. =============
  9. **Inherits:** :ref:`InputEventWithModifiers<class_InputEventWithModifiers>` **<** :ref:`InputEventFromWindow<class_InputEventFromWindow>` **<** :ref:`InputEvent<class_InputEvent>` **<** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
  10. Represents a key on a keyboard being pressed or released.
  11. .. rst-class:: classref-introduction-group
  12. Description
  13. -----------
  14. An input event for keys on a keyboard. Supports key presses, key releases and :ref:`echo<class_InputEventKey_property_echo>` events. It can also be received in :ref:`Node._unhandled_key_input<class_Node_private_method__unhandled_key_input>`.
  15. \ **Note:** Events received from the keyboard usually have all properties set. Event mappings should have only one of the :ref:`keycode<class_InputEventKey_property_keycode>`, :ref:`physical_keycode<class_InputEventKey_property_physical_keycode>` or :ref:`unicode<class_InputEventKey_property_unicode>` set.
  16. When events are compared, properties are checked in the following priority - :ref:`keycode<class_InputEventKey_property_keycode>`, :ref:`physical_keycode<class_InputEventKey_property_physical_keycode>` and :ref:`unicode<class_InputEventKey_property_unicode>`. Events with the first matching value will be considered equal.
  17. .. rst-class:: classref-introduction-group
  18. Tutorials
  19. ---------
  20. - :doc:`Using InputEvent <../tutorials/inputs/inputevent>`
  21. .. rst-class:: classref-reftable-group
  22. Properties
  23. ----------
  24. .. table::
  25. :widths: auto
  26. +-----------------------------------+------------------------------------------------------------------------+-----------+
  27. | :ref:`bool<class_bool>` | :ref:`echo<class_InputEventKey_property_echo>` | ``false`` |
  28. +-----------------------------------+------------------------------------------------------------------------+-----------+
  29. | :ref:`Key<enum_@GlobalScope_Key>` | :ref:`key_label<class_InputEventKey_property_key_label>` | ``0`` |
  30. +-----------------------------------+------------------------------------------------------------------------+-----------+
  31. | :ref:`Key<enum_@GlobalScope_Key>` | :ref:`keycode<class_InputEventKey_property_keycode>` | ``0`` |
  32. +-----------------------------------+------------------------------------------------------------------------+-----------+
  33. | :ref:`Key<enum_@GlobalScope_Key>` | :ref:`physical_keycode<class_InputEventKey_property_physical_keycode>` | ``0`` |
  34. +-----------------------------------+------------------------------------------------------------------------+-----------+
  35. | :ref:`bool<class_bool>` | :ref:`pressed<class_InputEventKey_property_pressed>` | ``false`` |
  36. +-----------------------------------+------------------------------------------------------------------------+-----------+
  37. | :ref:`int<class_int>` | :ref:`unicode<class_InputEventKey_property_unicode>` | ``0`` |
  38. +-----------------------------------+------------------------------------------------------------------------+-----------+
  39. .. rst-class:: classref-reftable-group
  40. Methods
  41. -------
  42. .. table::
  43. :widths: auto
  44. +-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
  45. | :ref:`String<class_String>` | :ref:`as_text_key_label<class_InputEventKey_method_as_text_key_label>` **(** **)** |const| |
  46. +-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
  47. | :ref:`String<class_String>` | :ref:`as_text_keycode<class_InputEventKey_method_as_text_keycode>` **(** **)** |const| |
  48. +-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
  49. | :ref:`String<class_String>` | :ref:`as_text_physical_keycode<class_InputEventKey_method_as_text_physical_keycode>` **(** **)** |const| |
  50. +-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
  51. | :ref:`Key<enum_@GlobalScope_Key>` | :ref:`get_key_label_with_modifiers<class_InputEventKey_method_get_key_label_with_modifiers>` **(** **)** |const| |
  52. +-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
  53. | :ref:`Key<enum_@GlobalScope_Key>` | :ref:`get_keycode_with_modifiers<class_InputEventKey_method_get_keycode_with_modifiers>` **(** **)** |const| |
  54. +-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
  55. | :ref:`Key<enum_@GlobalScope_Key>` | :ref:`get_physical_keycode_with_modifiers<class_InputEventKey_method_get_physical_keycode_with_modifiers>` **(** **)** |const| |
  56. +-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------+
  57. .. rst-class:: classref-section-separator
  58. ----
  59. .. rst-class:: classref-descriptions-group
  60. Property Descriptions
  61. ---------------------
  62. .. _class_InputEventKey_property_echo:
  63. .. rst-class:: classref-property
  64. :ref:`bool<class_bool>` **echo** = ``false``
  65. .. rst-class:: classref-property-setget
  66. - void **set_echo** **(** :ref:`bool<class_bool>` value **)**
  67. - :ref:`bool<class_bool>` **is_echo** **(** **)**
  68. If ``true``, the key was already pressed before this event. It means the user is holding the key down.
  69. .. rst-class:: classref-item-separator
  70. ----
  71. .. _class_InputEventKey_property_key_label:
  72. .. rst-class:: classref-property
  73. :ref:`Key<enum_@GlobalScope_Key>` **key_label** = ``0``
  74. .. rst-class:: classref-property-setget
  75. - void **set_key_label** **(** :ref:`Key<enum_@GlobalScope_Key>` value **)**
  76. - :ref:`Key<enum_@GlobalScope_Key>` **get_key_label** **(** **)**
  77. Represents the localized label printed on the key in the current keyboard layout, which corresponds to one of the :ref:`Key<enum_@GlobalScope_Key>` constants or any valid Unicode character.
  78. For keyboard layouts with a single label on the key, it is equivalent to :ref:`keycode<class_InputEventKey_property_keycode>`.
  79. To get a human-readable representation of the **InputEventKey**, use ``OS.get_keycode_string(event.key_label)`` where ``event`` is the **InputEventKey**.
  80. ::
  81. +-----+ +-----+
  82. | Q | | Q | - "Q" - keycode
  83. | Й | | ض | - "Й" and "ض" - key_label
  84. +-----+ +-----+
  85. .. rst-class:: classref-item-separator
  86. ----
  87. .. _class_InputEventKey_property_keycode:
  88. .. rst-class:: classref-property
  89. :ref:`Key<enum_@GlobalScope_Key>` **keycode** = ``0``
  90. .. rst-class:: classref-property-setget
  91. - void **set_keycode** **(** :ref:`Key<enum_@GlobalScope_Key>` value **)**
  92. - :ref:`Key<enum_@GlobalScope_Key>` **get_keycode** **(** **)**
  93. Latin label printed on the key in the current keyboard layout, which corresponds to one of the :ref:`Key<enum_@GlobalScope_Key>` constants.
  94. To get a human-readable representation of the **InputEventKey**, use ``OS.get_keycode_string(event.keycode)`` where ``event`` is the **InputEventKey**.
  95. ::
  96. +-----+ +-----+
  97. | Q | | Q | - "Q" - keycode
  98. | Й | | ض | - "Й" and "ض" - key_label
  99. +-----+ +-----+
  100. .. rst-class:: classref-item-separator
  101. ----
  102. .. _class_InputEventKey_property_physical_keycode:
  103. .. rst-class:: classref-property
  104. :ref:`Key<enum_@GlobalScope_Key>` **physical_keycode** = ``0``
  105. .. rst-class:: classref-property-setget
  106. - void **set_physical_keycode** **(** :ref:`Key<enum_@GlobalScope_Key>` value **)**
  107. - :ref:`Key<enum_@GlobalScope_Key>` **get_physical_keycode** **(** **)**
  108. Represents the physical location of a key on the 101/102-key US QWERTY keyboard, which corresponds to one of the :ref:`Key<enum_@GlobalScope_Key>` constants.
  109. To get a human-readable representation of the **InputEventKey**, use :ref:`OS.get_keycode_string<class_OS_method_get_keycode_string>` in combination with :ref:`DisplayServer.keyboard_get_keycode_from_physical<class_DisplayServer_method_keyboard_get_keycode_from_physical>`:
  110. .. tabs::
  111. .. code-tab:: gdscript
  112. func _input(event):
  113. if event is InputEventKey:
  114. var keycode = DisplayServer.keyboard_get_keycode_from_physical(event.physical_keycode)
  115. print(OS.get_keycode_string(keycode))
  116. .. code-tab:: csharp
  117. public override void _Input(InputEvent @event)
  118. {
  119. if (@event is InputEventKey inputEventKey)
  120. {
  121. var keycode = DisplayServer.KeyboardGetKeycodeFromPhysical(inputEventKey.PhysicalKeycode);
  122. GD.Print(OS.GetKeycodeString(keycode));
  123. }
  124. }
  125. .. rst-class:: classref-item-separator
  126. ----
  127. .. _class_InputEventKey_property_pressed:
  128. .. rst-class:: classref-property
  129. :ref:`bool<class_bool>` **pressed** = ``false``
  130. .. rst-class:: classref-property-setget
  131. - void **set_pressed** **(** :ref:`bool<class_bool>` value **)**
  132. - :ref:`bool<class_bool>` **is_pressed** **(** **)**
  133. If ``true``, the key's state is pressed. If ``false``, the key's state is released.
  134. .. rst-class:: classref-item-separator
  135. ----
  136. .. _class_InputEventKey_property_unicode:
  137. .. rst-class:: classref-property
  138. :ref:`int<class_int>` **unicode** = ``0``
  139. .. rst-class:: classref-property-setget
  140. - void **set_unicode** **(** :ref:`int<class_int>` value **)**
  141. - :ref:`int<class_int>` **get_unicode** **(** **)**
  142. The key Unicode character code (when relevant), shifted by modifier keys. Unicode character codes for composite characters and complex scripts may not be available unless IME input mode is active. See :ref:`Window.set_ime_active<class_Window_method_set_ime_active>` for more information.
  143. .. rst-class:: classref-section-separator
  144. ----
  145. .. rst-class:: classref-descriptions-group
  146. Method Descriptions
  147. -------------------
  148. .. _class_InputEventKey_method_as_text_key_label:
  149. .. rst-class:: classref-method
  150. :ref:`String<class_String>` **as_text_key_label** **(** **)** |const|
  151. Returns a :ref:`String<class_String>` representation of the event's :ref:`key_label<class_InputEventKey_property_key_label>` and modifiers.
  152. .. rst-class:: classref-item-separator
  153. ----
  154. .. _class_InputEventKey_method_as_text_keycode:
  155. .. rst-class:: classref-method
  156. :ref:`String<class_String>` **as_text_keycode** **(** **)** |const|
  157. Returns a :ref:`String<class_String>` representation of the event's :ref:`keycode<class_InputEventKey_property_keycode>` and modifiers.
  158. .. rst-class:: classref-item-separator
  159. ----
  160. .. _class_InputEventKey_method_as_text_physical_keycode:
  161. .. rst-class:: classref-method
  162. :ref:`String<class_String>` **as_text_physical_keycode** **(** **)** |const|
  163. Returns a :ref:`String<class_String>` representation of the event's :ref:`physical_keycode<class_InputEventKey_property_physical_keycode>` and modifiers.
  164. .. rst-class:: classref-item-separator
  165. ----
  166. .. _class_InputEventKey_method_get_key_label_with_modifiers:
  167. .. rst-class:: classref-method
  168. :ref:`Key<enum_@GlobalScope_Key>` **get_key_label_with_modifiers** **(** **)** |const|
  169. Returns the localized key label combined with modifier keys such as :kbd:`Shift` or :kbd:`Alt`. See also :ref:`InputEventWithModifiers<class_InputEventWithModifiers>`.
  170. To get a human-readable representation of the **InputEventKey** with modifiers, use ``OS.get_keycode_string(event.get_key_label_with_modifiers())`` where ``event`` is the **InputEventKey**.
  171. .. rst-class:: classref-item-separator
  172. ----
  173. .. _class_InputEventKey_method_get_keycode_with_modifiers:
  174. .. rst-class:: classref-method
  175. :ref:`Key<enum_@GlobalScope_Key>` **get_keycode_with_modifiers** **(** **)** |const|
  176. Returns the Latin keycode combined with modifier keys such as :kbd:`Shift` or :kbd:`Alt`. See also :ref:`InputEventWithModifiers<class_InputEventWithModifiers>`.
  177. To get a human-readable representation of the **InputEventKey** with modifiers, use ``OS.get_keycode_string(event.get_keycode_with_modifiers())`` where ``event`` is the **InputEventKey**.
  178. .. rst-class:: classref-item-separator
  179. ----
  180. .. _class_InputEventKey_method_get_physical_keycode_with_modifiers:
  181. .. rst-class:: classref-method
  182. :ref:`Key<enum_@GlobalScope_Key>` **get_physical_keycode_with_modifiers** **(** **)** |const|
  183. Returns the physical keycode combined with modifier keys such as :kbd:`Shift` or :kbd:`Alt`. See also :ref:`InputEventWithModifiers<class_InputEventWithModifiers>`.
  184. To get a human-readable representation of the **InputEventKey** with modifiers, use ``OS.get_keycode_string(event.get_physical_keycode_with_modifiers())`` where ``event`` is the **InputEventKey**.
  185. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
  186. .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
  187. .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
  188. .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
  189. .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`
  190. .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`
  191. .. |bitfield| replace:: :abbr:`BitField (This value is an integer composed as a bitmask of the following flags.)`