LineEdit
Inherits: Control < CanvasItem < Node < Object
Control that provides single-line string editing.
Description
LineEdit provides a single-line string editor, used for text fields.
It features many built-in shortcuts which will always be available (Ctrl
here maps to Command
on macOS):
- Ctrl + C: Copy
- Ctrl + X: Cut
- Ctrl + V or Ctrl + Y: Paste/“yank”
- Ctrl + Z: Undo
- Ctrl + Shift + Z: Redo
- Ctrl + U: Delete text from the cursor position to the beginning of the line
- Ctrl + K: Delete text from the cursor position to the end of the line
- Ctrl + A: Select all text
- Up/Down arrow: Move the cursor to the beginning/end of the line
On macOS, some extra keyboard shortcuts are available:
- Ctrl + F: Like the right arrow key, move the cursor one character right
- Ctrl + B: Like the left arrow key, move the cursor one character left
- Ctrl + P: Like the up arrow key, move the cursor to the previous line
- Ctrl + N: Like the down arrow key, move the cursor to the next line
- Ctrl + D: Like the Delete key, delete the character on the right side of cursor
- Ctrl + H: Like the Backspace key, delete the character on the left side of the cursor
- Command + Left arrow: Like the Home key, move the cursor to the beginning of the line
- Command + Right arrow: Like the End key, move the cursor to the end of the line
Properties
Align | align | 0 |
bool | caret_blink | false |
float | caret_blink_speed | 0.65 |
int | caret_position | 0 |
bool | clear_button_enabled | false |
bool | context_menu_enabled | true |
bool | editable | true |
bool | expand_to_text_length | false |
FocusMode | focus_mode | 2 (parent override) |
int | max_length | 0 |
CursorShape | mouse_default_cursor_shape | 1 (parent override) |
float | placeholder_alpha | 0.6 |
String | placeholder_text | “” |
Texture | right_icon | |
bool | secret | false |
String | secret_character | “*” |
bool | selecting_enabled | true |
bool | shortcut_keys_enabled | true |
String | text | “” |
bool | virtual_keyboard_enabled | true |
Methods
void | append_at_cursor ( String text ) |
void | clear ( ) |
void | delete_char_at_cursor ( ) |
void | delete_text ( int from_column, int to_column ) |
void | deselect ( ) |
PopupMenu | get_menu ( ) const |
int | get_scroll_offset ( ) const |
void | menu_option ( int option ) |
void | select ( int from=0, int to=-1 ) |
void | select_all ( ) |
Theme Properties
Texture | clear | |
Color | clear_button_color | Color( 0.88, 0.88, 0.88, 1 ) |
Color | clear_button_color_pressed | Color( 1, 1, 1, 1 ) |
Color | cursor_color | Color( 0.94, 0.94, 0.94, 1 ) |
StyleBox | focus | |
Font | font | |
Color | font_color | Color( 0.88, 0.88, 0.88, 1 ) |
Color | font_color_selected | Color( 0, 0, 0, 1 ) |
Color | font_color_uneditable | Color( 0.88, 0.88, 0.88, 0.5 ) |
int | minimum_spaces | 12 |
StyleBox | normal | |
StyleBox | read_only | |
Color | selection_color | Color( 0.49, 0.49, 0.49, 1 ) |
Signals
- text_change_rejected ( )
Emitted when trying to append text that would overflow the max_length.
- text_changed ( String new_text )
Emitted when the text changes.
- text_entered ( String new_text )
Emitted when the user presses @GlobalScope.KEY_ENTER on the LineEdit
.
Enumerations
enum Align:
- ALIGN_LEFT = 0 —- Aligns the text on the left-hand side of the
LineEdit
. - ALIGN_CENTER = 1 —- Centers the text in the middle of the
LineEdit
. - ALIGN_RIGHT = 2 —- Aligns the text on the right-hand side of the
LineEdit
. - ALIGN_FILL = 3 —- Stretches whitespaces to fit the
LineEdit
‘s width.
enum MenuItems:
- MENU_CUT = 0 —- Cuts (copies and clears) the selected text.
- MENU_COPY = 1 —- Copies the selected text.
- MENU_PASTE = 2 —- Pastes the clipboard text over the selected text (or at the cursor’s position).
Non-printable escape characters are automatically stripped from the OS clipboard via String.strip_escapes.
- MENU_CLEAR = 3 —- Erases the whole
LineEdit
text. - MENU_SELECT_ALL = 4 —- Selects the whole
LineEdit
text. - MENU_UNDO = 5 —- Undoes the previous action.
- MENU_REDO = 6 —- Reverse the last undo action.
- MENU_MAX = 7 —- Represents the size of the MenuItems enum.
Property Descriptions
- Align align
Default | 0 |
Setter | set_align(value) |
Getter | get_align() |
Text alignment as defined in the Align enum.
- bool caret_blink
Default | false |
Setter | cursor_set_blink_enabled(value) |
Getter | cursor_get_blink_enabled() |
If true
, the caret (visual cursor) blinks.
- float caret_blink_speed
Default | 0.65 |
Setter | cursor_set_blink_speed(value) |
Getter | cursor_get_blink_speed() |
Duration (in seconds) of a caret’s blinking cycle.
- int caret_position
Default | 0 |
Setter | set_cursor_position(value) |
Getter | get_cursor_position() |
The cursor’s position inside the LineEdit
. When set, the text may scroll to accommodate it.
- bool clear_button_enabled
Default | false |
Setter | set_clear_button_enabled(value) |
Getter | is_clear_button_enabled() |
If true
, the LineEdit
will show a clear button if text
is not empty, which can be used to clear the text quickly.
- bool context_menu_enabled
Default | true |
Setter | set_context_menu_enabled(value) |
Getter | is_context_menu_enabled() |
If true
, the context menu will appear when right-clicked.
- bool editable
Default | true |
Setter | set_editable(value) |
Getter | is_editable() |
If false
, existing text cannot be modified and new text cannot be added.
- bool expand_to_text_length
Default | false |
Setter | set_expand_to_text_length(value) |
Getter | get_expand_to_text_length() |
If true
, the LineEdit
width will increase to stay longer than the text. It will not compress if the text is shortened.
- int max_length
Default | 0 |
Setter | set_max_length(value) |
Getter | get_max_length() |
Maximum amount of characters that can be entered inside the LineEdit
. If 0
, there is no limit.
- float placeholder_alpha
Default | 0.6 |
Setter | set_placeholder_alpha(value) |
Getter | get_placeholder_alpha() |
Opacity of the placeholder_text. From 0
to 1
.
- String placeholder_text
Default | “” |
Setter | set_placeholder(value) |
Getter | get_placeholder() |
Text shown when the LineEdit
is empty. It is not the LineEdit
‘s default value (see text).
- Texture right_icon
Setter | set_right_icon(value) |
Getter | get_right_icon() |
Sets the icon that will appear in the right end of the LineEdit
if there’s no text, or always, if clear_button_enabled is set to false
.
- bool secret
Default | false |
Setter | set_secret(value) |
Getter | is_secret() |
If true
, every character is replaced with the secret character (see secret_character).
- String secret_character
Default | “*” |
Setter | set_secret_character(value) |
Getter | get_secret_character() |
The character to use to mask secret input (defaults to “*“). Only a single character can be used as the secret character.
- bool selecting_enabled
Default | true |
Setter | set_selecting_enabled(value) |
Getter | is_selecting_enabled() |
If false
, it’s impossible to select the text using mouse nor keyboard.
- bool shortcut_keys_enabled
Default | true |
Setter | set_shortcut_keys_enabled(value) |
Getter | is_shortcut_keys_enabled() |
If false
, using shortcuts will be disabled.
- String text
Default | “” |
Setter | set_text(value) |
Getter | get_text() |
String value of the LineEdit
.
Note: Changing text using this property won’t emit the text_changed signal.
- bool virtual_keyboard_enabled
Default | true |
Setter | set_virtual_keyboard_enabled(value) |
Getter | is_virtual_keyboard_enabled() |
If true
, the native virtual keyboard is shown when focused on platforms that support it.
Method Descriptions
- void append_at_cursor ( String text )
Adds text
after the cursor. If the resulting value is longer than max_length, nothing happens.
- void clear ( )
Erases the LineEdit
‘s text.
- void delete_char_at_cursor ( )
Deletes one character at the cursor’s current position (equivalent to pressing the Delete
key).
Deletes a section of the text going from position from_column
to to_column
. Both parameters should be within the text’s length.
- void deselect ( )
Clears the current selection.
- PopupMenu get_menu ( ) const
Returns the PopupMenu of this LineEdit
. By default, this menu is displayed when right-clicking on the LineEdit
.
- int get_scroll_offset ( ) const
Returns the scroll offset due to caret_position, as a number of characters.
- void menu_option ( int option )
Executes a given action as defined in the MenuItems enum.
Selects characters inside LineEdit
between from
and to
. By default, from
is at the beginning and to
at the end.
text = "Welcome"
select() # Will select "Welcome".
select(4) # Will select "ome".
select(2, 5) # Will select "lco".
- void select_all ( )
Selects the whole String.