LineEdit

Inherits: Control < CanvasItem < Node < Object

该控件提供单行字符串编辑。

描述

LineEdit 提供了单行字符串编辑器,用于文本字段。

它具有许多始终可用的内置快捷方式(在这里 Ctrl 映射到 macOS 上的 Command):

  • Ctrl + C:复制

  • Ctrl + X:剪切

  • Ctrl + V 或 Ctrl + Y:粘贴/“拖拽”

  • Ctrl + Z:撤消

  • Ctrl + Shift + Z:重做

  • Ctrl + U:删除从光标位置到行首的文本

  • Ctrl + K:删除从光标位置到行尾的文本

  • Ctrl + A:选择所有文本

  • Up/Down 箭头: :将光标移动到行的开头/结尾

在 macOS 上,有一些额外的键盘快捷键可用:

  • Ctrl + F:像右箭头键一样,将光标向右移动一个字符

  • Ctrl + B:像左箭头键一样,将光标向左移动一个字符

  • Ctrl + P:像向上箭头键一样,将光标移动到上一行

  • Ctrl + N:像向下箭头键一样,将光标移动到下一行

  • Ctrl + D:像Delete键一样,删除光标右侧的字符

  • Ctrl + H:像退格键一样,删除光标左侧的字符

  • Command + 左箭头:像 Home 键一样,将光标移动到行首

  • Command + 右箭头:像 End 键一样,将光标移动到行尾

属性

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 (overrides Control)

int

max_length

0

CursorShape

mouse_default_cursor_shape

1 (overrides Control)

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

方法

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 ( )

主题属性

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 )

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 )

Color

selection_color

Color( 0.49, 0.49, 0.49, 1 )

int

minimum_spaces

12

Font

font

Texture

clear

StyleBox

focus

StyleBox

normal

StyleBox

read_only

信号

  • text_change_rejected ( String rejected_substring )

当附加的文本超过了max_length时触发。附加的文本被截断以适应max_length,不能适应的部分被作为rejected_substring参数传递。


  • text_changed ( String new_text )

当文本更改时触发。


  • text_entered ( String new_text )

当用户按LineEdit上的@GlobalScope.KEY_ENTER时触发。

枚举

enum Align:

  • ALIGN_LEFT = 0 —- LineEdit文本左对齐。

  • ALIGN_CENTER = 1 —- LineEdit文本居中。

  • ALIGN_RIGHT = 2 —- LineEdit文本右对齐。

  • ALIGN_FILL = 3 —- 拉伸空白以适应LineEdit的宽度。


enum MenuItems:

  • MENU_CUT = 0 —- 剪切(复制并删除)选定的文本。

  • MENU_COPY = 1 —- 复制选定的文本。

  • MENU_PASTE = 2 —- 将剪贴板文本粘贴到所选文本上(或光标所在位置)。

不可打印的转义字符将通过String.strip_escapes从操作系统剪贴板中自动剥离。

  • MENU_CLEAR = 3 —- 删除整个LineEdit文本。

  • MENU_SELECT_ALL = 4 —- 选择LineEdit中所有文本。

  • MENU_UNDO = 5 —- 撤销之前的操作。

  • MENU_REDO = 6 —- 反转最后一个撤销动作。

  • MENU_MAX = 7 —- 表示MenuItems枚举的大小。

属性说明

Default

0

Setter

set_align(value)

Getter

get_align()

Align枚举中定义文本对齐方式。


Default

false

Setter

cursor_set_blink_enabled(value)

Getter

cursor_get_blink_enabled()

如果为true,插入符号(可视光标)将闪烁。


Default

0.65

Setter

cursor_set_blink_speed(value)

Getter

cursor_get_blink_speed()

插入符号闪烁周期的持续时间(秒)。


  • int caret_position

Default

0

Setter

set_cursor_position(value)

Getter

get_cursor_position()

光标在LineEdit中的位置。设置后,文本可以滚动以适应它。


  • bool clear_button_enabled

Default

false

Setter

set_clear_button_enabled(value)

Getter

is_clear_button_enabled()

如果为 trueLineEdit 将在 text 非空时显示一个按钮,可以用来快速清除文本。


  • bool context_menu_enabled

Default

true

Setter

set_context_menu_enabled(value)

Getter

is_context_menu_enabled()

如果为true,右键单击将出现上下文菜单。


Default

true

Setter

set_editable(value)

Getter

is_editable()

如果为false,则不能修改现在的文本,也不能添加新文本。


  • bool expand_to_text_length

Default

false

Setter

set_expand_to_text_length(value)

Getter

get_expand_to_text_length()

如果true,则LineEdit宽度将增加到比text长。如果text被缩短,它将压缩。


  • int max_length

Default

0

Setter

set_max_length(value)

Getter

get_max_length()

LineEdit内可输入的最大字符量。如果0,则没有限制。

当定义了限制时,超过max_length的字符会被截断。这在设置最大长度时现有的 text 内容,或在LineEdit中插入的新文本,包括粘贴时发生。如果任何输入的文本被截断,text_change_rejected信号将以被截断的子串为参数发送出来。

例如:

  1. text = "Hello world"
  2. max_length = 5
  3. # `text` becomes "Hello".
  4. max_length = 10
  5. text += " goodbye"
  6. # `text` becomes "Hello good".
  7. # `text_change_rejected` is emitted with "bye" as parameter.

Default

0.6

Setter

set_placeholder_alpha(value)

Getter

get_placeholder_alpha()

placeholder_text的不透明度。值从01


Default

“”

Setter

set_placeholder(value)

Getter

get_placeholder()

LineEdit为空时显示的文本。它不是LineEdit的默认值(见 text)。


Setter

set_right_icon(value)

Getter

get_right_icon()

如果没有text,或如果clear_button_enabled设置为false,则设置将出现在LineEdit右端的图标。


Default

false

Setter

set_secret(value)

Getter

is_secret()

如果为true,每个字符都会被替换成密码字符(参考secret_character)。


Default

“*”

Setter

set_secret_character(value)

Getter

get_secret_character()

用来作为密码输入的字符(默认为 “*“)。只能用一个字符作为密码字符。


  • bool selecting_enabled

Default

true

Setter

set_selecting_enabled(value)

Getter

is_selecting_enabled()

如果为false,则无法用鼠标或键盘选择文本。


  • bool shortcut_keys_enabled

Default

true

Setter

set_shortcut_keys_enabled(value)

Getter

is_shortcut_keys_enabled()

如果为false,快捷键将被禁用。


Default

“”

Setter

set_text(value)

Getter

get_text()

LineEdit的字符串值。

注意:使用这个属性更改文本不会触发text_changed信号。


  • bool virtual_keyboard_enabled

Default

true

Setter

set_virtual_keyboard_enabled(value)

Getter

is_virtual_keyboard_enabled()

如果true,则本机虚拟键盘将显示在支持它的平台上。

方法说明

  • void append_at_cursor ( String text )

在光标后添加text文本。如果产生的值长于max_length,则不会发生任何事情。


  • void clear ( )

擦除 LineEdittext文本 。


  • void delete_char_at_cursor ( )

在光标的当前位置删除一个字符(相当于按Delete键)。


  • void delete_text ( int from_column, int to_column )

删除从from_columnto_column位置的文本text的一部分。两个参数都应该在文本的长度之内。


  • void deselect ( )

清除当前选择。


返回这个LineEditPopupMenu。默认情况下,这个菜单在右键点击LineEdit时显示。

警告: 这是一个必要的内部节点,移除和释放它可能会导致崩溃。如果你想隐藏它或它的任何子节点,请使用其的 CanvasItem.visible 属性。


  • int get_scroll_offset ( ) const

返回由caret_position引起的滚动偏移,作为数字字符串。


  • void menu_option ( int option )

执行MenuItems枚举中定义的给定操作。


  • void select ( int from=0, int to=-1 )

fromto之间的LineEdit内选择字符。默认情况下,from位于开头,to位于结尾。

  1. text = "Welcome"
  2. select() # 将选择 "Welcome".
  3. select(4) # 将选择 "ome".
  4. select(2, 5) #将选择 "lco".

  • void select_all ( )

选择整个 String

Theme Property Descriptions

  • Color clear_button_color

Default

Color( 0.88, 0.88, 0.88, 1 )

用作清除按钮默认色调的颜色。


  • Color clear_button_color_pressed

Default

Color( 1, 1, 1, 1 )

按下清除按钮时使用的颜色。


Default

Color( 0.94, 0.94, 0.94, 1 )

LineEdit可视光标(插入符号)的颜色。


Default

Color( 0.88, 0.88, 0.88, 1 )

默认字体颜色。


  • Color font_color_selected

Default

Color( 0, 0, 0, 1 )

选定文本的字体颜色(在选择矩形内)。


  • Color font_color_uneditable

Default

Color( 0.88, 0.88, 0.88, 0.5 )

禁用编辑时的字体颜色。


Default

Color( 0.49, 0.49, 0.49, 1 )

选择矩形的颜色。


  • int minimum_spaces

Default

12

文本的最小水平空间(不包括清除按钮和内容边距)。该值以空格字符的计数来衡量(即无需滚动即可显示空格字符的数量)。


文本使用的字体。


“清除”按钮的纹理。请参阅clear_button_enabled


LineEdit具有图形用户界面焦点时使用的背景。


LineEdit的默认背景。


LineEdit处于只读模式时使用的背景(editable设置为false)。