Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
LineEdit
Успадковує: Control < CanvasItem < Node < Object
Вхідне поле для однолінійного тексту.
Опис
LineEdit надає поле введення для редагування одного рядка тексту.
Коли елемент керування LineEdit сфокусовано за допомогою клавіш зі стрілками клавіатури, він лише отримає фокус і не перейде в режим редагування.
Щоб увійти в режим редагування, клацніть на елементі керування мишею, див. також keep_editing_on_text_submit.
Щоб вийти з режиму редагування, натисніть
ui_text_submitабоui_cancel(за замовчуванням Escape).Перевірте дії edit(), unedit(), is_editing() та editing_toggled для отримання додаткової інформації.
Під час введення тексту можна вставляти спеціальні символи за допомогою кодів Unicode, OEM або Windows alt:
Щоб ввести кодові точки Unicode, утримуйте Alt та введіть кодову точку на цифровій клавіатурі. Наприклад, щоб ввести символ
á(U+00E1), утримуйте Alt та введіть +E1 на цифровій клавіатурі (початкові нулі можна пропустити).Щоб ввести коди OEM, утримуйте Alt та введіть код на цифровій клавіатурі. Наприклад, щоб ввести символ
á(OEM 160), утримуйте Alt та введіть160на цифровій клавіатурі.Щоб ввести коди Windows, утримуйте Alt та введіть код на цифровій клавіатурі. Наприклад, щоб ввести символ
á(Windows 0225), утримуйте клавішу Alt та введіть 0, 2, 2, 5 на цифровій клавіатурі. Початковий нуль тут не можна пропускати, оскільки саме так кодові точки Windows відрізняються від кодових точок OEM.
Важливо:
Фокусування LineEdit за допомогою
ui_focus_next(за замовчуванням Tab) абоui_focus_prev(за замовчуванням Shift + Tab) або Control.grab_focus() все одно переводить у режим редагування (для сумісності).
LineEdit має багато вбудованих комбінацій клавіш, які завжди доступні (Ctrl тут відповідає Cmd на macOS):
Ctrl + C: Копіювати
Ctrl + X: Вирізати
Ctrl + V або Ctrl + Y: Вставити/"витягнути"
Ctrl + Z: Скасувати
Ctrl + ~: Змінити напрямок введення.
Ctrl + Shift + Z: Повторити
Ctrl + U: Видалити текст від позиції каретки до початку рядка
Ctrl + K: Видалити текст від позиції каретки до кінця рядка
Ctrl + A: Виділити весь текст
Стрілка вгору/Стрілка вниз: Перемістити каретку на початок/кінець рядка
У macOS доступні деякі додаткові комбінації клавіш:
Cmd + F: Те саме, що й Стрілка вправо, перемістити каретку на один символ праворуч
Cmd + B: Те саме, що й Стрілка вліво, перемістити каретку на один символ ліворуч
Cmd + P: Те саме, що Стрілка вгору, перемістити каретку на попередній рядок
Cmd + N: Те саме, що й Стрілка вниз, перемістити каретку на наступний рядок
Cmd + D: Те саме, що й Delete, видалити символ праворуч від каретки
Cmd + H: Те саме, що й Backspace, видалити символ ліворуч від каретки
Cmd + A: Те саме, що й Home, перемістити каретку на початок рядка
Cmd + E: Те саме, що й End, перемістити каретку в кінець рядка
Cmd + Стрілка вліво: Те саме, що Home, перемістити каретку на початок рядка
Cmd + Стрілка вправо: Те саме, що й End, перемістити каретку в кінець рядка
Примітка: На перелічені вище комбінації клавіш для переміщення каретки не впливає shortcut_keys_enabled.
Властивості
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
focus_mode |
|
|
|
||
|
||
String |
|
|
|
||
|
||
mouse_default_cursor_shape |
|
|
String |
|
|
Texture2D |
||
|
||
|
||
String |
|
|
|
||
|
||
|
||
StructuredTextParser |
|
|
|
||
String |
|
|
|
||
|
||
|
||
|
Методи
void |
|
void |
|
void |
clear() |
void |
|
void |
delete_text(from_column: int, to_column: int) |
void |
deselect() |
void |
|
PopupMenu |
get_menu() const |
get_next_composite_character_column(column: int) const |
|
get_previous_composite_character_column(column: int) const |
|
get_scroll_offset() const |
|
String |
|
get_selection_from_column() const |
|
get_selection_to_column() const |
|
has_ime_text() const |
|
has_redo() const |
|
has_selection() const |
|
has_undo() const |
|
void |
insert_text_at_caret(text: String) |
is_editing() const |
|
is_menu_visible() const |
|
void |
menu_option(option: int) |
void |
|
void |
|
void |
unedit() |
Властивості теми
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Texture2D |
||
StyleBox |
||
StyleBox |
||
StyleBox |
Сигнали
editing_toggled(toggled_on: bool) 🔗
Видається, коли LineEdit перемикається в режим редагування або виходить з нього.
text_change_rejected(rejected_substring: String) 🔗
Виникає під час додавання тексту, що переповнює max_length. Доданий текст скорочується до max_length, а частина, яка не поміститься, передається як аргумент rejected_substring.
text_changed(new_text: String) 🔗
Випробувано при зміні тексту.
text_submitted(new_text: String) 🔗
Видається, коли користувач натискає дію ui_text_submit (за замовчуванням: Enter або Kp Enter), коли LineEdit має фокус.
Переліки
Вирізи (копії та очищення) вибраного тексту.
Скопіює вибраний текст.
Вставте текст буфера над вибраним текстом (або на позиції догляду).
Недруковані символи втечу автоматично скомпедуються з клавіатури OS через String.strip_escapes().
Видаляє весь текст LineEdit.
Виберіть текст LineEdit.
Не додає попередньої дії.
Зворотній зв'язок.
Ідентифікатор субменю «Текстна записка».
Налаштовує текстовий напрямок у спадок.
Налаштування текстового напрямку до автоматичного.
Встановлює напрямок тексту на ліву сторону.
Налаштовує текстовий напрямок до правого вліво.
Вмикає/вимикає відображення керівних символів.
Ідентифікатор підменю «Вставити керуючий символ».
Вставте ліву позначку (LRM).
Вставки правого вліво позначки (RLM) характер.
Вставки старту ліворучного тиснення (LRE) символу.
Вставки стартують право-лівий тиснення (RLE) символу.
Вставки старту ліворучного наднаряддя (LRO) персонажа.
Вставки стартують право-лівий надряддя (RLO) символ.
Вставки форматування поштового напрямку (PDF) символ.
Вставки арабської марки літери (ALM).
Вставки ліворучного ізоляту (LRI).
Вставте правий-лівий ізолят (RLI) символ.
Вставляє перший символ строгого ізоляту (FSI).
Вставляє символ ізоляції напрямку виштовхування (PDI).
Вставте нульову ширину стикувача (ZWJ) характер.
Вставляє символ нульової ширини, що не з'єднує елементи (ZWNJ).
Вставте слово-приєднувач (WJ) символ.
Вставки м'якого фена (ШІ) характеру.
Відкриває системний засіб вибору смайлів і символів.
Представляємо розмір MenuItems enum.
enum VirtualKeyboardType: 🔗
VirtualKeyboardType KEYBOARD_TYPE_DEFAULT = 0
За замовчуванням текст віртуальної клавіатури.
VirtualKeyboardType KEYBOARD_TYPE_MULTILINE = 1
Багатоканальна віртуальна клавіатура.
VirtualKeyboardType KEYBOARD_TYPE_NUMBER = 2
Віртуальний номер клавіатури, корисний для входу PIN.
VirtualKeyboardType KEYBOARD_TYPE_NUMBER_DECIMAL = 3
Віртуальний номер клавіатури, корисний для введення дробових чисел.
VirtualKeyboardType KEYBOARD_TYPE_PHONE = 4
Віртуальна телефонна клавіатура.
VirtualKeyboardType KEYBOARD_TYPE_EMAIL_ADDRESS = 5
Віртуальна клавіатура з додатковими ключами, щоб допомогти з налаштуванням електронних адрес.
VirtualKeyboardType KEYBOARD_TYPE_PASSWORD = 6
Віртуальна клавіатура для введення пароля. На більшості платформ, це слід відключити автозакінчення і автоматизацію.
Примітка: Це не підтримується на Веб-сайті. Замість цього, такі породи ідентично KEYBOARD_TYPE_DEFAULT.
VirtualKeyboardType KEYBOARD_TYPE_URL = 7
Віртуальна клавіатура з додатковими ключами, щоб допомогти з натисканням URL.
enum ExpandMode: 🔗
ExpandMode EXPAND_MODE_ORIGINAL_SIZE = 0
Використайте оригінальний розмір для правої значка.
ExpandMode EXPAND_MODE_FIT_TO_TEXT = 1
Масштабуйте розмір правої іконки відповідно до розміру тексту.
ExpandMode EXPAND_MODE_FIT_TO_LINE_EDIT = 2
Масштабуйте праву іконку відповідно до LineEdit.
Описи властивостей
HorizontalAlignment alignment = 0 🔗
void set_horizontal_alignment(value: HorizontalAlignment)
HorizontalAlignment get_horizontal_alignment()
Горизонтальне вирівнювання тексту.
bool backspace_deletes_composite_character_enabled = false 🔗
void set_backspace_deletes_composite_character_enabled(value: bool)
bool is_backspace_deletes_composite_character_enabled()
Якщо true та caret_mid_grapheme має значення false, клавіша Backspace видаляє цілий складений символ, наприклад ❤️🩹, а не частину складеного символу.
Якщо true, робить догляд за посиланням.
float caret_blink_interval = 0.65 🔗
Проміжок, в якому доглядаються посилання (в секундах).
Положення стовпчика вгорі LineEdit. При налаштуванні текст може прокручуватися, щоб вмістити його.
bool caret_force_displayed = false 🔗
Якщо true, LineEdit завжди показуватиме каретку, навіть якщо не редагувати або фокус буде втрачено.
bool caret_mid_grapheme = false 🔗
Дозволити рухомий догляд, вибрати і видалити окремі компоненти композитного характеру.
Примітка: Backspace завжди видаляє окремі компоненти композитного характеру.
bool clear_button_enabled = false 🔗
Якщо true, LineEdit покаже кнопку очищення, якщо text не порожній, що можна використовувати для швидкого очищення тексту.
Якщо true, контекстне меню з'явиться при правильній завантаженні.
bool deselect_on_focus_loss_enabled = true 🔗
Якщо true, вибраний текст буде вилучено, коли фокус втрачено.
bool drag_and_drop_selection_enabled = true 🔗
Якщо true, дайте перетягування вибраного тексту.
bool draw_control_chars = false 🔗
Якщо true, відображаються символи керування.
Якщо false, існуючий текст не може бути змінений і новий текст не можна додавати.
Якщо true, меню «Емодзі та символи» ввімкнено.
bool expand_to_text_length = false 🔗
Якщо значення true, ширина LineEdit збільшиться, щоб залишатися довшою за text. Вона не стиснеться, якщо text скоротиться.
Якщо true, LineEdit не відображається прикраса.
ExpandMode icon_expand_mode = 0 🔗
void set_icon_expand_mode(value: ExpandMode)
ExpandMode get_icon_expand_mode()
Визначте масштабування елемента right_icon.
bool keep_editing_on_text_submit = false 🔗
Якщо true, LineEdit не вийде з режиму редагування, коли текст надсилається натисканням кнопки ui_text_submit (за умовчанням: Enter або Kp Enter).
String language = "" 🔗
void set_language(value: String)
String get_language()
Код мови, що використовується для алгоритмів розриву рядків та формування тексту. Якщо залишити поле порожнім, використовується поточна локалізація.
Максимальна кількість символів, яку можна ввести всередині LineEdit. Якщо 0, обмеження немає.
Коли обмеження визначено, символи, що перевищують max_length, обрізаються. Це відбувається як для існуючого вмісту text під час встановлення максимальної довжини, так і для нового тексту, вставленого в LineEdit, включаючи вставку.
Якщо будь-який вхідний текст обрізається, випромінюється сигнал text_change_rejected зі обрізаним підрядком як параметром:
text = "Hello world"
max_length = 5
# `text` стає "Hello".
max_length = 10
text += " goodbye"
# `text` стає "Hello good".
# `text_change_rejected` випромінюється з параметром "bye".
Text = "Hello world";
MaxLength = 5;
// `Text` стає "Hello".
MaxLength = 10;
Text += " goodbye";
// `Text` стає "Hello good".
// `text_change_rejected` генерується з параметром "bye".
bool middle_mouse_paste_enabled = true 🔗
Якщо false, використовуючи середню кнопку миші, щоб записувати буфер буде вимкнено.
Примітка: Цей метод реалізується тільки на Linux.
String placeholder_text = "" 🔗
void set_placeholder(value: String)
String get_placeholder()
Текст, що відображається, коли LineEdit порожній. Це не значення LineEdit за замовчуванням (див. text).
Texture2D right_icon 🔗
void set_right_icon(value: Texture2D)
Texture2D get_right_icon()
Встановлює піктограму, яка відображатиметься у правому кінці LineEdit, якщо немає text, або завжди, якщо clear_button_enabled має значення false.
float right_icon_scale = 1.0 🔗
Масштабування значка, коли для icon_expand_mode встановлено значення EXPAND_MODE_FIT_TO_LINE_EDIT.
Якщо true, кожен символ замінюється секретним символом (див. secret_character).
String secret_character = "•" 🔗
void set_secret_character(value: String)
String get_secret_character()
Характер для використання маски секретного введення. Єдиний символ може використовуватися як секретний характер. Якщо він більше одного персонажа буде використовуватися тільки перший. Якщо це порожній, то простір буде використовуватися замість.
bool select_all_on_focus = false 🔗
Якщо true, LineEdit вибере весь текст, коли він отримує фокус.
bool selecting_enabled = true 🔗
Якщо false, можна вибрати текст за допомогою миші або клавіатури.
bool shortcut_keys_enabled = true 🔗
Якщо true, увімкнено комбінації клавіш для контекстного меню, навіть якщо контекстне меню вимкнено.
StructuredTextParser structured_text_bidi_override = 0 🔗
void set_structured_text_bidi_override(value: StructuredTextParser)
StructuredTextParser get_structured_text_bidi_override()
Настроювання алгоритму BiDi для структурованого тексту.
Array structured_text_bidi_override_options = [] 🔗
void set_structured_text_bidi_override_options(value: Array)
Array get_structured_text_bidi_override_options()
Налаштуйте додаткові параметри для перенади BiDi.
String text = "" 🔗
void set_text(value: String)
String get_text()
Рядкове значення LineEdit.
Примітка: Зміна тексту за допомогою цієї властивості не призведе до випромінювання сигналу text_changed.
TextDirection text_direction = 0 🔗
void set_text_direction(value: TextDirection)
TextDirection get_text_direction()
Основний напрямок написання тексту.
bool virtual_keyboard_enabled = true 🔗
Якщо значення true, рідна віртуальна клавіатура ввімкнена на платформах, які її підтримують.
bool virtual_keyboard_show_on_focus = true 🔗
Якщо значення true, рідна віртуальна клавіатура відображається під час подій focus на платформах, які її підтримують.
VirtualKeyboardType virtual_keyboard_type = 0 🔗
void set_virtual_keyboard_type(value: VirtualKeyboardType)
VirtualKeyboardType get_virtual_keyboard_type()
Визначає тип віртуальної клавіатури для відображення.
Описи методів
void apply_ime() 🔗
Застосовує текст із Редактора методів введення (IME) і закриває IME, якщо він відкритий.
void cancel_ime() 🔗
Закрити ` Вхід Редактор метода <https://en.wikipedia.org/wiki/Input_method>`__ (IME) якщо він відкритий. Будь-який текст в IME буде втрачено.
void clear() 🔗
Стирає елементи LineEdit text.
void delete_char_at_caret() 🔗
Видаляє один характер на поточному положенні опіки (еквівалент для пресування Delete).
void delete_text(from_column: int, to_column: int) 🔗
Видаляє розділ text переходячи від позиції from_column до to_column. Обидва параметри повинні бути в межах довжини тексту.
void deselect() 🔗
Очищає поточний вибір.
void edit(hide_focus: bool = false) 🔗
Дозволяє перейти в режим редагування, незалежно від того, чи перебуває фокус на LineEdit, чи ні. Якщо hide_focus має значення true, стан фокусування не відображатиметься (див. Control.grab_focus()).
Див. також keep_editing_on_text_submit.
Повертає PopupMenu цього LineEdit. За замовчуванням це меню відображається, якщо клацнути правою кнопкою миші LineEdit.
Ви можете додати власні пункти меню або видалити стандартні. Переконайтеся, що ваші ідентифікатори не конфліктують зі стандартними (див. MenuItems). Наприклад:
func _ready():
var menu = get_menu()
# Видалити всі елементи після "Повторити".
menu.item_count = menu.get_item_index(MENU_REDO) + 1
# Додайте спеціальні елементи.
menu.add_separator()
menu.add_item("Insert date", MENU_MAX + 1)
# Підключити зворотній дзвінок.
menu.id_pressed.connect(_on_item_pressed)
func _on_item_pressed(id):
if id == MENU_MAX + 1:
insert_text_at_caret(Time.get_date_string_from_system())
public override void _Ready()
{
var menu = GetMenu();
// Видалити всі елементи після "Redo".
menu.ItemCount = menu.GetItemIndex(LineEdit.MenuItems.Redo) + 1;
// Додати власні елементи.
menu.AddSeparator();
menu.AddItem("Insert date", LineEdit.MenuItems.Max + 1);
// Додати обробник події.
menu.IdPressed += OnItemPressed;
}
public void OnItemPressed(int id)
{
if (id == LineEdit.MenuItems.Max + 1)
{
InsertTextAtCaret(Time.GetDateStringFromSystem());
}
}
Попередження: Це обов’язковий внутрішній вузол, його видалення та звільнення може призвести до збою. Якщо ви бажаєте приховати його чи будь-який із його дочірніх елементів, скористайтеся властивістю Window.visible.
int get_next_composite_character_column(column: int) const 🔗
Повертає правильний стовпець у кінці складеного символу, наприклад, ❤️🩹 (загоєння серця; Unicode: U+2764 U+FE0F U+200D U+1FA79), який складається з більш ніж однієї кодової точки Unicode, якщо каретка знаходиться на початку складеного символу. Також повертає правильний стовпець з кареткою посередині графеми та для нескладених символів.
Примітка: Щоб перевірити розташування каретки, використовуйте get_next_composite_character_column(get_caret_column())
int get_previous_composite_character_column(column: int) const 🔗
Повертає правильний стовпець на початку складеного символу, наприклад, ❤️🩹 (загоєння серця; Unicode: U+2764 U+FE0F U+200D U+1FA79), який складається з більш ніж однієї кодової точки Unicode, якщо каретка знаходиться в кінці складеного символу. Також повертає правильний стовпець з кареткою посередині графеми та для нескладених символів.
Примітка: Щоб перевірити розташування каретки, використовуйте get_previous_composite_character_column(get_caret_column())
float get_scroll_offset() const 🔗
Повертає зміщення прокручування, зумовлене caret_column, у вигляді кількості символів.
String get_selected_text() 🔗
Повертаємо текст всередині вибору.
int get_selection_from_column() const 🔗
Повертаємо вибраний стовпчик.
int get_selection_to_column() const 🔗
Повертає кінець вибору стовпця.
Повертає true, якщо користувач має текст у Input Method Editor (IME).
Повертаємо true, якщо доступна акція "redo".
Повертає true, якщо користувач вибрав текст.
Повертаємо true, якщо доступна акція "undo".
void insert_text_at_caret(text: String) 🔗
Вставляє text на каретці. Якщо отримане значення довше за max_length, нічого не відбувається.
Повертає інформацію про те, чи редагується LineEdit.
Повертаємо вашу увагу на те, що меню видно. Використовуйте це замість ``get_menu().видимі `` для поліпшення продуктивності (наприклад, створення меню уникнути).
Виконує задану дію, як визначену в MenuItems enum.
void select(from: int = 0, to: int = -1) 🔗
Вибирає символи всередині LineEdit між from і to. За замовчуванням from знаходиться на початку, а to у кінці.
text = "Ласкаво просимо"
select() # Вибере "Ласкаво просимо".
select(4) # Вибере "ome".
select(2, 5) # Вибере "lco".
Text = "Ласкаво просимо";
select(); // Вибере "Ласкаво просимо".
select(4); // Вибере "ome".
select(2, 5); // Вибере "lco".
void select_all() 🔗
Виберіть все String.
void unedit() 🔗
Дозволяє вийти з режиму редагування зі збереженням фокусу.
Описи тематичної нерухомості
Color caret_color = Color(0.95, 0.95, 0.95, 1) 🔗
Колір догляду LineEdit Це може бути встановлений для повного прозорого кольору, щоб повністю приховати догляд.
Color clear_button_color = Color(0.875, 0.875, 0.875, 1) 🔗
Колір, який використовується як за замовчуванням для чіткої кнопки.
Color clear_button_color_pressed = Color(1, 1, 1, 1) 🔗
Колір використовується для чіткої кнопки при натисканні.
Color font_color = Color(0.875, 0.875, 0.875, 1) 🔗
Колір шрифту за замовчуванням.
Color font_outline_color = Color(0, 0, 0, 1) 🔗
Текст тексту LineEdit.
Color font_placeholder_color = Color(0.875, 0.875, 0.875, 0.6) 🔗
Колір шрифту для placeholder_text.
Color font_selected_color = Color(1, 1, 1, 1) 🔗
Колір шрифту для вибраного тексту (всередині вибору прямокутника).
Color font_uneditable_color = Color(0.875, 0.875, 0.875, 0.5) 🔗
Колір шрифту при редагування вимкнено.
Color selection_color = Color(0.5, 0.5, 0.5, 1) 🔗
Колір вибору прямокутника.
Ширина догляду в пікселях. Більші значення можуть бути використані для поліпшення доступності шляхом забезпечення догляду легко видно, або забезпечити консистенцію з великим розміром шрифту.
int minimum_character_width = 4 🔗
Мінімальний горизонтальний простір для тексту (не підрахунок чіткої кнопки та запасів вмісту). Це значення вимірюється в кількості символів 'M' (тобто цей номер символів 'M' може відображатися без прокручування).
Розмір контуру тексту.
Примітка. Якщо використовується шрифт із увімкненим FontFile.multichannel_signed_distance_field, для його FontFile.msdf_pixel_range має бути принаймні вдвічі значення outline_size щоб рендеринг контуру виглядав правильно. Інакше контур може здатися обрізаним раніше, ніж передбачалося.
Використовується для тексту.
Розмір шрифту тексту LineEdit.
Texture2D clear 🔗
Текстура для кнопки очищення. Див. clear_button_enabled.
StyleBox focus 🔗
Підземелля використовується при LineEdit має фокус GUI. focus StyleBox відображається over бази StyleBox, тому для забезпечення бази StyleBox слід використовувати частково прозорий StyleBox. Стильбокс, який добре працює для цього. Щоб вимкнути візуальний ефект фокусу, призначте ресурс StyleBoxEmpty. Зверніть увагу, що відключення візуального ефекту фокусу буде завдати шкоди клавіатурі / керованій навігації, тому це не рекомендується для причин доступності.
StyleBox normal 🔗
За замовчуванням для LineEdit.
StyleBox read_only 🔗
Підземний використовується, коли LineEdit знаходиться в режимі зчитування (editable встановлюється до false).