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 键一样,将光标移动到行尾
属性
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
focus_mode |
| |
| ||
mouse_default_cursor_shape |
| |
| ||
| ||
| ||
| ||
| ||
| ||
| ||
|
方法
void | append_at_cursor ( String text ) |
void | clear ( ) |
void | |
void | delete_text ( int from_column, int to_column ) |
void | deselect ( ) |
get_menu ( ) const | |
get_scroll_offset ( ) const | |
void | menu_option ( int option ) |
void | |
void | select_all ( ) |
主题属性
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
信号
- 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枚举的大小。
属性说明
- Align align
Default |
|
Setter | set_align(value) |
Getter | get_align() |
在Align枚举中定义文本对齐方式。
- bool caret_blink
Default |
|
Setter | cursor_set_blink_enabled(value) |
Getter | cursor_get_blink_enabled() |
如果为true
,插入符号(可视光标)将闪烁。
- float caret_blink_speed
Default |
|
Setter | cursor_set_blink_speed(value) |
Getter | cursor_get_blink_speed() |
插入符号闪烁周期的持续时间(秒)。
- int caret_position
Default |
|
Setter | set_cursor_position(value) |
Getter | get_cursor_position() |
光标在LineEdit
中的位置。设置后,文本可以滚动以适应它。
- bool clear_button_enabled
Default |
|
Setter | set_clear_button_enabled(value) |
Getter | is_clear_button_enabled() |
如果为 true
,LineEdit
将在 text
非空时显示一个按钮,可以用来快速清除文本。
- bool context_menu_enabled
Default |
|
Setter | set_context_menu_enabled(value) |
Getter | is_context_menu_enabled() |
如果为true
,右键单击将出现上下文菜单。
- bool editable
Default |
|
Setter | set_editable(value) |
Getter | is_editable() |
如果为false
,则不能修改现在的文本,也不能添加新文本。
- bool expand_to_text_length
Default |
|
Setter | set_expand_to_text_length(value) |
Getter | get_expand_to_text_length() |
如果true
,则LineEdit
宽度将增加到比text长。如果text被缩短,它将不压缩。
- int max_length
Default |
|
Setter | set_max_length(value) |
Getter | get_max_length() |
在LineEdit
内可输入的最大字符量。如果0
,则没有限制。
当定义了限制时,超过max_length的字符会被截断。这在设置最大长度时现有的 text 内容,或在LineEdit
中插入的新文本,包括粘贴时发生。如果任何输入的文本被截断,text_change_rejected信号将以被截断的子串为参数发送出来。
例如:
text = "Hello world"
max_length = 5
# `text` becomes "Hello".
max_length = 10
text += " goodbye"
# `text` becomes "Hello good".
# `text_change_rejected` is emitted with "bye" as parameter.
- float placeholder_alpha
Default |
|
Setter | set_placeholder_alpha(value) |
Getter | get_placeholder_alpha() |
placeholder_text的不透明度。值从0
到1
。
- String placeholder_text
Default |
|
Setter | set_placeholder(value) |
Getter | get_placeholder() |
当LineEdit
为空时显示的文本。它不是LineEdit
的默认值(见 text)。
- Texture right_icon
Setter | set_right_icon(value) |
Getter | get_right_icon() |
如果没有text,或如果clear_button_enabled设置为false
,则设置将出现在LineEdit
右端的图标。
- bool secret
Default |
|
Setter | set_secret(value) |
Getter | is_secret() |
如果为true
,每个字符都会被替换成密码字符(参考secret_character)。
- String secret_character
Default |
|
Setter | set_secret_character(value) |
Getter | get_secret_character() |
用来作为密码输入的字符(默认为 “*“)。只能用一个字符作为密码字符。
- bool selecting_enabled
Default |
|
Setter | set_selecting_enabled(value) |
Getter | is_selecting_enabled() |
如果为false
,则无法用鼠标或键盘选择文本。
- bool shortcut_keys_enabled
Default |
|
Setter | set_shortcut_keys_enabled(value) |
Getter | is_shortcut_keys_enabled() |
如果为false
,快捷键将被禁用。
- String text
Default |
|
Setter | set_text(value) |
Getter | get_text() |
LineEdit
的字符串值。
注意:使用这个属性更改文本不会触发text_changed信号。
- bool virtual_keyboard_enabled
Default |
|
Setter | set_virtual_keyboard_enabled(value) |
Getter | is_virtual_keyboard_enabled() |
如果true
,则本机虚拟键盘将显示在支持它的平台上。
方法说明
- void append_at_cursor ( String text )
在光标后添加text
文本。如果产生的值长于max_length,则不会发生任何事情。
- void clear ( )
擦除 LineEdit
的 text文本 。
- void delete_char_at_cursor ( )
在光标的当前位置删除一个字符(相当于按Delete
键)。
删除从from_column
到to_column
位置的文本text的一部分。两个参数都应该在文本的长度之内。
- void deselect ( )
清除当前选择。
- PopupMenu get_menu ( ) const
返回这个LineEdit
的PopupMenu。默认情况下,这个菜单在右键点击LineEdit
时显示。
警告: 这是一个必要的内部节点,移除和释放它可能会导致崩溃。如果你想隐藏它或它的任何子节点,请使用其的 CanvasItem.visible 属性。
- int get_scroll_offset ( ) const
返回由caret_position引起的滚动偏移,作为数字字符串。
- void menu_option ( int option )
执行MenuItems枚举中定义的给定操作。
在from
和to
之间的LineEdit
内选择字符。默认情况下,from
位于开头,to
位于结尾。
text = "Welcome"
select() # 将选择 "Welcome".
select(4) # 将选择 "ome".
select(2, 5) #将选择 "lco".
- void select_all ( )
选择整个 String。
Theme Property Descriptions
- Color clear_button_color
Default |
|
用作清除按钮默认色调的颜色。
- Color clear_button_color_pressed
Default |
|
按下清除按钮时使用的颜色。
- Color cursor_color
Default |
|
LineEdit
可视光标(插入符号)的颜色。
- Color font_color
Default |
|
默认字体颜色。
- Color font_color_selected
Default |
|
选定文本的字体颜色(在选择矩形内)。
- Color font_color_uneditable
Default |
|
禁用编辑时的字体颜色。
- Color selection_color
Default |
|
选择矩形的颜色。
- int minimum_spaces
Default |
|
文本的最小水平空间(不包括清除按钮和内容边距)。该值以空格字符的计数来衡量(即无需滚动即可显示空格字符的数量)。
- Font font
文本使用的字体。
- Texture clear
“清除”按钮的纹理。请参阅clear_button_enabled。
- StyleBox focus
当LineEdit
具有图形用户界面焦点时使用的背景。
- StyleBox normal
LineEdit
的默认背景。
- StyleBox read_only
LineEdit
处于只读模式时使用的背景(editable设置为false
)。