Documentation
¶
Overview ¶
LineEdit provides an input field for editing a single line of text.
- When the LineEdit control is focused using the keyboard arrow keys, it will only gain focus and not enter edit mode.
- To enter edit mode, click on the control with the mouse, see also KeepEditingOnTextSubmit.
- To exit edit mode, press ui_text_submit or ui_cancel (by default Escape) actions.
- Check Edit, Unedit, IsEditing, and OnEditingToggled for more information.
While entering text, it is possible to insert special characters using Unicode, OEM or Windows alt codes:
- To enter Unicode codepoints, hold Alt and type the codepoint on the numpad. For example, to enter the character á (U+00E1), hold Alt and type +E1 on the numpad (the leading zeroes can be omitted).
- To enter OEM codepoints, hold Alt and type the code on the numpad. For example, to enter the character á (OEM 160), hold Alt and type 160 on the numpad.
- To enter Windows codepoints, hold Alt and type the code on the numpad. For example, to enter the character á (Windows 0225), hold Alt and type 0, 2, 2, 5 on the numpad. The leading zero here must not be omitted, as this is how Windows codepoints are distinguished from OEM codepoints.
Important:
- Focusing the LineEdit with ui_focus_next (by default Tab) or ui_focus_prev (by default Shift + Tab) or Control.GrabFocus still enters edit mode (for compatibility).
LineEdit features many built-in shortcuts that are always available (Ctrl here maps to Cmd on macOS):
- Ctrl + C: Copy
- Ctrl + X: Cut
- Ctrl + V or Ctrl + Y: Paste/"yank"
- Ctrl + Z: Undo
- Ctrl + ~: Swap input direction.
- Ctrl + Shift + Z: Redo
- Ctrl + U: Delete text from the caret position to the beginning of the line
- Ctrl + K: Delete text from the caret position to the end of the line
- Ctrl + A: Select all text
- Up Arrow/Down Arrow: Move the caret to the beginning/end of the line
On macOS, some extra keyboard shortcuts are available:
- Cmd + F: Same as Right Arrow, move the caret one character right
- Cmd + B: Same as Left Arrow, move the caret one character left
- Cmd + P: Same as Up Arrow, move the caret to the previous line
- Cmd + N: Same as Down Arrow, move the caret to the next line
- Cmd + D: Same as Delete, delete the character on the right side of caret
- Cmd + H: Same as Backspace, delete the character on the left side of the caret
- Cmd + A: Same as Home, move the caret to the beginning of the line
- Cmd + E: Same as End, move the caret to the end of the line
- Cmd + Left Arrow: Same as Home, move the caret to the beginning of the line
- Cmd + Right Arrow: Same as End, move the caret to the end of the line
Note: Caret movement shortcuts listed above are not affected by ShortcutKeysEnabled.
Index ¶
- type Advanced
- type Any
- type Expanded
- type Extension
- type ID
- type Instance
- func (self Instance) Alignment() GUI.HorizontalAlignment
- func (self Instance) ApplyIme()
- func (self Instance) AsCanvasItem() CanvasItem.Instance
- func (self Instance) AsControl() Control.Instance
- func (self Instance) AsLineEdit() Instance
- func (self Instance) AsNode() Node.Instance
- func (self Instance) AsObject() [1]gd.Object
- func (self Instance) BackspaceDeletesCompositeCharacterEnabled() bool
- func (self Instance) CancelIme()
- func (self Instance) CaretBlink() bool
- func (self Instance) CaretBlinkInterval() Float.X
- func (self Instance) CaretColumn() int
- func (self Instance) CaretForceDisplayed() bool
- func (self Instance) CaretMidGrapheme() bool
- func (self Instance) Clear()
- func (self Instance) ClearButtonEnabled() bool
- func (self Instance) ContextMenuEnabled() bool
- func (self Instance) DeleteCharAtCaret()
- func (self Instance) DeleteText(from_column int, to_column int)
- func (self Instance) Deselect()
- func (self Instance) DeselectOnFocusLossEnabled() bool
- func (self Instance) DragAndDropSelectionEnabled() bool
- func (self Instance) DrawControlChars() bool
- func (self Instance) Edit()
- func (self Instance) Editable() bool
- func (self Instance) EmojiMenuEnabled() bool
- func (self Instance) ExpandToTextLength() bool
- func (self Instance) Flat() bool
- func (self Instance) GetMenu() PopupMenu.Instance
- func (self Instance) GetNextCompositeCharacterColumn(column int) int
- func (self Instance) GetPreviousCompositeCharacterColumn(column int) int
- func (self Instance) GetScrollOffset() Float.X
- func (self Instance) GetSelectedText() string
- func (self Instance) GetSelectionFromColumn() int
- func (self Instance) GetSelectionToColumn() int
- func (self Instance) HasImeText() bool
- func (self Instance) HasRedo() bool
- func (self Instance) HasSelection() bool
- func (self Instance) HasUndo() bool
- func (self Instance) ID() ID
- func (self Instance) InsertTextAtCaret(text string)
- func (self Instance) IsEditing() bool
- func (self Instance) IsMenuVisible() bool
- func (self Instance) KeepEditingOnTextSubmit() bool
- func (self Instance) Language() string
- func (self Instance) MaxLength() int
- func (self Instance) MenuOption(option int)
- func (self Instance) MiddleMousePasteEnabled() bool
- func (self Instance) MoreArgs() MoreArgs
- func (self Instance) OnEditingToggled(cb func(toggled_on bool), flags ...Signal.Flags)
- func (self Instance) OnTextChangeRejected(cb func(rejected_substring string), flags ...Signal.Flags)
- func (self Instance) OnTextChanged(cb func(new_text string), flags ...Signal.Flags)
- func (self Instance) OnTextSubmitted(cb func(new_text string), flags ...Signal.Flags)
- func (self Instance) PlaceholderText() string
- func (self Instance) RightIcon() Texture2D.Instance
- func (self Instance) Secret() bool
- func (self Instance) SecretCharacter() string
- func (self Instance) Select()
- func (self Instance) SelectAll()
- func (self Instance) SelectAllOnFocus() bool
- func (self Instance) SelectingEnabled() bool
- func (self Instance) SetAlignment(value GUI.HorizontalAlignment)
- func (self Instance) SetBackspaceDeletesCompositeCharacterEnabled(value bool)
- func (self Instance) SetCaretBlink(value bool)
- func (self Instance) SetCaretBlinkInterval(value Float.X)
- func (self Instance) SetCaretColumn(value int)
- func (self Instance) SetCaretForceDisplayed(value bool)
- func (self Instance) SetCaretMidGrapheme(value bool)
- func (self Instance) SetClearButtonEnabled(value bool)
- func (self Instance) SetContextMenuEnabled(value bool)
- func (self Instance) SetDeselectOnFocusLossEnabled(value bool)
- func (self Instance) SetDragAndDropSelectionEnabled(value bool)
- func (self Instance) SetDrawControlChars(value bool)
- func (self Instance) SetEditable(value bool)
- func (self Instance) SetEmojiMenuEnabled(value bool)
- func (self Instance) SetExpandToTextLength(value bool)
- func (self Instance) SetFlat(value bool)
- func (self Instance) SetKeepEditingOnTextSubmit(value bool)
- func (self Instance) SetLanguage(value string)
- func (self Instance) SetMaxLength(value int)
- func (self Instance) SetMiddleMousePasteEnabled(value bool)
- func (self *Instance) SetObject(obj [1]gd.Object) bool
- func (self Instance) SetPlaceholderText(value string)
- func (self Instance) SetRightIcon(value Texture2D.Instance)
- func (self Instance) SetSecret(value bool)
- func (self Instance) SetSecretCharacter(value string)
- func (self Instance) SetSelectAllOnFocus(value bool)
- func (self Instance) SetSelectingEnabled(value bool)
- func (self Instance) SetShortcutKeysEnabled(value bool)
- func (self Instance) SetStructuredTextBidiOverride(value TextServer.StructuredTextParser)
- func (self Instance) SetStructuredTextBidiOverrideOptions(value []any)
- func (self Instance) SetText(value string)
- func (self Instance) SetTextDirection(value Control.TextDirection)
- func (self Instance) SetVirtualKeyboardEnabled(value bool)
- func (self Instance) SetVirtualKeyboardShowOnFocus(value bool)
- func (self Instance) SetVirtualKeyboardType(value VirtualKeyboardType)
- func (self Instance) ShortcutKeysEnabled() bool
- func (self Instance) StructuredTextBidiOverride() TextServer.StructuredTextParser
- func (self Instance) StructuredTextBidiOverrideOptions() []any
- func (self Instance) Text() string
- func (self Instance) TextDirection() Control.TextDirection
- func (self Instance) Unedit()
- func (self Instance) Virtual(name string) reflect.Value
- func (self Instance) VirtualKeyboardEnabled() bool
- func (self Instance) VirtualKeyboardShowOnFocus() bool
- func (self Instance) VirtualKeyboardType() VirtualKeyboardType
- type MenuItems
- type MoreArgs
- type VirtualKeyboardType
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Advanced ¶
type Advanced = class
Advanced exposes a 1:1 low-level instance of the class, undocumented, for those who know what they are doing.
type Extension ¶
Extension can be embedded in a new struct to create an extension of this class. T should be the type that is embedding this Extension
func (*Extension[T]) AsCanvasItem ¶
func (self *Extension[T]) AsCanvasItem() CanvasItem.Instance
func (*Extension[T]) AsLineEdit ¶
type ID ¶
ID is a typed object ID (reference) to an instance of this class, use it to store references to objects with unknown lifetimes, as an ID will not panic on use if the underlying object has been destroyed.
type Instance ¶
Instance of the class with convieniently typed arguments and results.
var Nil Instance
Nil is a nil/null instance of the class. Equivalent to the zero value.
func (Instance) Alignment ¶
func (self Instance) Alignment() GUI.HorizontalAlignment
func (Instance) ApplyIme ¶
func (self Instance) ApplyIme()
Applies text from the Input Method Editor (IME) and closes the IME if it is open.
func (Instance) AsCanvasItem ¶
func (self Instance) AsCanvasItem() CanvasItem.Instance
func (Instance) AsLineEdit ¶
func (Instance) BackspaceDeletesCompositeCharacterEnabled ¶
func (Instance) CancelIme ¶
func (self Instance) CancelIme()
Closes the Input Method Editor (IME) if it is open. Any text in the IME will be lost.
func (Instance) CaretBlink ¶
func (Instance) CaretBlinkInterval ¶
func (Instance) CaretColumn ¶
func (Instance) CaretForceDisplayed ¶
func (Instance) CaretMidGrapheme ¶
func (Instance) ClearButtonEnabled ¶
func (Instance) ContextMenuEnabled ¶
func (Instance) DeleteCharAtCaret ¶
func (self Instance) DeleteCharAtCaret()
Deletes one character at the caret's current position (equivalent to pressing Delete).
func (Instance) DeleteText ¶
Deletes a section of the Text going from position 'from_column' to 'to_column'. Both parameters should be within the text's length.
func (Instance) DeselectOnFocusLossEnabled ¶
func (Instance) DragAndDropSelectionEnabled ¶
func (Instance) DrawControlChars ¶
func (Instance) Edit ¶
func (self Instance) Edit()
Allows entering edit mode whether the LineEdit is focused or not.
See also KeepEditingOnTextSubmit.
func (Instance) EmojiMenuEnabled ¶
func (Instance) ExpandToTextLength ¶
func (Instance) GetMenu ¶
Returns the PopupMenu of this LineEdit. By default, this menu is displayed when right-clicking on the LineEdit.
You can add custom menu items or remove standard ones. Make sure your IDs don't conflict with the standard ones (see MenuItems). For example:
Ready := func() { var menu = line_edit.GetMenu() // Remove all items after "Redo". menu.SetItemCount(menu.GetItemIndex(int(LineEdit.MenuRedo)) + 1) // Add custom items. menu.AddSeparator() menu.MoreArgs().AddItem("Insert Date", int(LineEdit.MenuMax)+1, 0) // Connect callback. menu.OnIdPressed(func(id int) { if id == int(LineEdit.MenuMax)+1 { line_edit.InsertTextAtCaret(Time.GetDateStringFromSystem(false)) } }) }
Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their Window.Visible property.
func (Instance) GetNextCompositeCharacterColumn ¶
Returns the correct column at the end of a composite character like ❤️🩹 (mending heart; Unicode: U+2764 U+FE0F U+200D U+1FA79) which is comprised of more than one Unicode code point, if the caret is at the start of the composite character. Also returns the correct column with the caret at mid grapheme and for non-composite characters.
Note: To check at caret location use get_next_composite_character_column(get_caret_column())
func (Instance) GetPreviousCompositeCharacterColumn ¶
Returns the correct column at the start of a composite character like ❤️🩹 (mending heart; Unicode: U+2764 U+FE0F U+200D U+1FA79) which is comprised of more than one Unicode code point, if the caret is at the end of the composite character. Also returns the correct column with the caret at mid grapheme and for non-composite characters.
Note: To check at caret location use get_previous_composite_character_column(get_caret_column())
func (Instance) GetScrollOffset ¶
Returns the scroll offset due to CaretColumn, as a number of characters.
func (Instance) GetSelectedText ¶
Returns the text inside the selection.
func (Instance) GetSelectionFromColumn ¶
Returns the selection begin column.
func (Instance) GetSelectionToColumn ¶
Returns the selection end column.
func (Instance) HasImeText ¶
Returns true if the user has text in the Input Method Editor (IME).
func (Instance) HasSelection ¶
Returns true if the user has selected text.
func (Instance) InsertTextAtCaret ¶
Inserts 'text' at the caret. If the resulting value is longer than MaxLength, nothing happens.
func (Instance) IsMenuVisible ¶
Returns whether the menu is visible. Use this instead of get_menu().visible to improve performance (so the creation of the menu is avoided).
func (Instance) KeepEditingOnTextSubmit ¶
func (Instance) MenuOption ¶
Executes a given action as defined in the MenuItems enum.
func (Instance) MiddleMousePasteEnabled ¶
func (Instance) MoreArgs ¶
MoreArgs enables certain functions to be called with additional 'optional' arguments.
func (Instance) OnEditingToggled ¶
func (Instance) OnTextChangeRejected ¶
func (Instance) OnTextChanged ¶
func (Instance) OnTextSubmitted ¶
func (Instance) PlaceholderText ¶
func (Instance) SecretCharacter ¶
func (Instance) Select ¶
func (self Instance) Select()
Selects characters inside LineEdit between 'from' and 'to'. By default, 'from' is at the beginning and 'to' at the end.
line_edit.SetText("Welcome") line_edit.Select() // Will select "Welcome". line_edit.MoreArgs().Select(4, -1) // Will select "ome". line_edit.MoreArgs().Select(2, 5) // Will select "lco".
func (Instance) SelectAllOnFocus ¶
func (Instance) SelectingEnabled ¶
func (Instance) SetAlignment ¶
func (self Instance) SetAlignment(value GUI.HorizontalAlignment)
func (Instance) SetBackspaceDeletesCompositeCharacterEnabled ¶
func (Instance) SetCaretBlink ¶
func (Instance) SetCaretBlinkInterval ¶
func (Instance) SetCaretColumn ¶
func (Instance) SetCaretForceDisplayed ¶
func (Instance) SetCaretMidGrapheme ¶
func (Instance) SetClearButtonEnabled ¶
func (Instance) SetContextMenuEnabled ¶
func (Instance) SetDeselectOnFocusLossEnabled ¶
func (Instance) SetDragAndDropSelectionEnabled ¶
func (Instance) SetDrawControlChars ¶
func (Instance) SetEditable ¶
func (Instance) SetEmojiMenuEnabled ¶
func (Instance) SetExpandToTextLength ¶
func (Instance) SetKeepEditingOnTextSubmit ¶
func (Instance) SetLanguage ¶
func (Instance) SetMaxLength ¶
func (Instance) SetMiddleMousePasteEnabled ¶
func (Instance) SetPlaceholderText ¶
func (Instance) SetRightIcon ¶
func (Instance) SetSecretCharacter ¶
func (Instance) SetSelectAllOnFocus ¶
func (Instance) SetSelectingEnabled ¶
func (Instance) SetShortcutKeysEnabled ¶
func (Instance) SetStructuredTextBidiOverride ¶
func (self Instance) SetStructuredTextBidiOverride(value TextServer.StructuredTextParser)
func (Instance) SetStructuredTextBidiOverrideOptions ¶
func (Instance) SetTextDirection ¶
func (self Instance) SetTextDirection(value Control.TextDirection)
func (Instance) SetVirtualKeyboardEnabled ¶
func (Instance) SetVirtualKeyboardShowOnFocus ¶
func (Instance) SetVirtualKeyboardType ¶
func (self Instance) SetVirtualKeyboardType(value VirtualKeyboardType)
func (Instance) ShortcutKeysEnabled ¶
func (Instance) StructuredTextBidiOverride ¶
func (self Instance) StructuredTextBidiOverride() TextServer.StructuredTextParser
func (Instance) StructuredTextBidiOverrideOptions ¶
func (Instance) TextDirection ¶
func (self Instance) TextDirection() Control.TextDirection
func (Instance) Unedit ¶
func (self Instance) Unedit()
Allows exiting edit mode while preserving focus.
func (Instance) VirtualKeyboardEnabled ¶
func (Instance) VirtualKeyboardShowOnFocus ¶
func (Instance) VirtualKeyboardType ¶
func (self Instance) VirtualKeyboardType() VirtualKeyboardType
type MenuItems ¶
type MenuItems int //gd:LineEdit.MenuItems
const ( // Cuts (copies and clears) the selected text. MenuCut MenuItems = 0 // Copies the selected text. MenuCopy MenuItems = 1 // Pastes the clipboard text over the selected text (or at the caret's position). // // Non-printable escape characters are automatically stripped from the OS clipboard via [String.StripEscapes]. // // [String.StripEscapes]: https://pkg.go.dev/graphics.gd/classdb/String#Instance.StripEscapes MenuPaste MenuItems = 2 // Erases the whole [LineEdit] text. // // [LineEdit]: https://pkg.go.dev/graphics.gd/classdb/LineEdit MenuClear MenuItems = 3 // Selects the whole [LineEdit] text. // // [LineEdit]: https://pkg.go.dev/graphics.gd/classdb/LineEdit MenuSelectAll MenuItems = 4 // Undoes the previous action. MenuUndo MenuItems = 5 // Reverse the last undo action. MenuRedo MenuItems = 6 MenuSubmenuTextDir MenuItems = 7 // Sets text direction to inherited. MenuDirInherited MenuItems = 8 // Sets text direction to automatic. MenuDirAuto MenuItems = 9 // Sets text direction to left-to-right. MenuDirLtr MenuItems = 10 // Sets text direction to right-to-left. MenuDirRtl MenuItems = 11 // Toggles control character display. MenuDisplayUcc MenuItems = 12 MenuSubmenuInsertUcc MenuItems = 13 // Inserts left-to-right mark (LRM) character. MenuInsertLrm MenuItems = 14 // Inserts right-to-left mark (RLM) character. MenuInsertRlm MenuItems = 15 // Inserts start of left-to-right embedding (LRE) character. MenuInsertLre MenuItems = 16 // Inserts start of right-to-left embedding (RLE) character. MenuInsertRle MenuItems = 17 // Inserts start of left-to-right override (LRO) character. MenuInsertLro MenuItems = 18 // Inserts start of right-to-left override (RLO) character. MenuInsertRlo MenuItems = 19 // Inserts pop direction formatting (PDF) character. MenuInsertPdf MenuItems = 20 // Inserts Arabic letter mark (ALM) character. MenuInsertAlm MenuItems = 21 // Inserts left-to-right isolate (LRI) character. MenuInsertLri MenuItems = 22 // Inserts right-to-left isolate (RLI) character. MenuInsertRli MenuItems = 23 // Inserts first strong isolate (FSI) character. MenuInsertFsi MenuItems = 24 // Inserts pop direction isolate (PDI) character. MenuInsertPdi MenuItems = 25 // Inserts zero width joiner (ZWJ) character. MenuInsertZwj MenuItems = 26 // Inserts zero width non-joiner (ZWNJ) character. MenuInsertZwnj MenuItems = 27 // Inserts word joiner (WJ) character. MenuInsertWj MenuItems = 28 // Inserts soft hyphen (SHY) character. MenuInsertShy MenuItems = 29 // Opens system emoji and symbol picker. MenuEmojiAndSymbol MenuItems = 30 // Represents the size of the [MenuItems] enum. MenuMax MenuItems = 31 )
type MoreArgs ¶
MoreArgs is a container for Instance functions with additional 'optional' arguments.
func (MoreArgs) Select ¶
Selects characters inside LineEdit between 'from' and 'to'. By default, 'from' is at the beginning and 'to' at the end.
line_edit.SetText("Welcome") line_edit.Select() // Will select "Welcome". line_edit.MoreArgs().Select(4, -1) // Will select "ome". line_edit.MoreArgs().Select(2, 5) // Will select "lco".
type VirtualKeyboardType ¶
type VirtualKeyboardType int //gd:LineEdit.VirtualKeyboardType
const ( // Default text virtual keyboard. KeyboardTypeDefault VirtualKeyboardType = 0 // Multiline virtual keyboard. KeyboardTypeMultiline VirtualKeyboardType = 1 // Virtual number keypad, useful for PIN entry. KeyboardTypeNumber VirtualKeyboardType = 2 // Virtual number keypad, useful for entering fractional numbers. KeyboardTypeNumberDecimal VirtualKeyboardType = 3 // Virtual phone number keypad. KeyboardTypePhone VirtualKeyboardType = 4 // Virtual keyboard with additional keys to assist with typing email addresses. KeyboardTypeEmailAddress VirtualKeyboardType = 5 // Virtual keyboard for entering a password. On most platforms, this should disable autocomplete and autocapitalization. // // Note: This is not supported on Web. Instead, this behaves identically to [KeyboardTypeDefault]. KeyboardTypePassword VirtualKeyboardType = 6 // Virtual keyboard with additional keys to assist with typing URLs. KeyboardTypeUrl VirtualKeyboardType = 7 )