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...
SplitContainer
Успадковує: Container < Control < CanvasItem < Node < Object
Успадковано від: HSplitContainer, VSplitContainer
Контейнер, який розташовує дочірні елементи керування горизонтально або вертикально та надає засоби захоплення для налаштування коефіцієнтів поділу між ними.
Опис
Контейнер, який розташовує дочірні елементи керування горизонтально або вертикально та створює між ними граббери. Граббери можна перетягувати, щоб змінити співвідношення розмірів між дочірніми елементами керування.
Посібники
Властивості
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
Методи
void |
clamp_split_offset(priority_index: int = 0) |
Властивості теми
|
||
|
||
|
||
|
||
|
||
|
||
Сигнали
drag_ended() 🔗
Видається, коли користувач завершує перетягування.
drag_started() 🔗
Видається, коли користувач починає перетягувати.
Видається, коли користувач перетягує будь-який елемент перетягування.
Переліки
enum DraggerVisibility: 🔗
DraggerVisibility DRAGGER_VISIBLE = 0
Піктограма розділеного перетягувача завжди видима, якщо autohide має значення false, інакше вона відображається лише тоді, коли на неї наводиться курсор.
Розмір піктограми захоплення визначає мінімальний separation.
Піктограма перетягування автоматично приховується, якщо довжина піктограми захоплювача більша за смугу розділення.
Значок розділеного перетягувача ніколи не відображається незалежно від значення autohide.
Розмір піктограми захоплення визначає мінімальний separation.
Значок розділеного перетягувача не видно, а панель розділення згорнуто до нульової товщини.
Описи властивостей
Якщо значення true, перетягувачі будуть вимкнені, а розмір дочірніх елементів буде визначено так, ніби всі split_offsets дорівнюють 0.
bool drag_area_highlight_in_editor = false 🔗
Виділяє область перетягування Rect2, щоб ви могли бачити, де вона знаходиться під час розробки. Зона перетягування є золотою, якщо dragging_enabled має значення true, і червоною, якщо false.
int drag_area_margin_begin = 0 🔗
Зменшує розмір області перетягування та панелі розділення split_bar_background на початку контейнера.
int drag_area_margin_end = 0 🔗
Зменшує розмір області перетягування та панелі розділення split_bar_background у кінці контейнера.
Зміщує область перетягування на осі контейнера, щоб запобігти перекриттю області перетягування ScrollBar або іншого вибраного Control дочірнього вузла.
bool drag_nested_intersections = false 🔗
Додає додаткові маркери перетягування на перетині маркерів двох SplitContainers, щоб можна було перетягувати обидва одночасно. Це потрібно встановити на true для обох SplitContainers, і один з них повинен бути нащадком іншого. Вони також повинні бути ортогональними (їхні vertical відрізняються), а нащадок повинен знаходитися поруч принаймні з одним з перетягувачів предка (в межах minimum_grab_thickness).
DraggerVisibility dragger_visibility = 0 🔗
void set_dragger_visibility(value: DraggerVisibility)
DraggerVisibility get_dragger_visibility()
Визначає видимість перетягувача. Ця властивість не визначає, чи ввімкнено перетягування. Для цього використовуйте dragging_enabled.
bool dragging_enabled = true 🔗
Вмикає або вимикає розділене перетягування.
Застаріло: Use split_offsets instead. The first element of the array is the split offset between the first two children.
Перший елемент split_offsets.
PackedInt32Array split_offsets = PackedInt32Array(0) 🔗
void set_split_offsets(value: PackedInt32Array)
PackedInt32Array get_split_offsets()
Зміщення для кожного перетягувача в пікселях. Кожне з них – це зміщення розриву між вузлами Control до та після перетягувача, де 0 є позицією за замовчуванням. Положення за замовчуванням базується на прапорцях розгортання вузлів Control та мінімальних розмірах. Див. Control.size_flags_horizontal, Control.size_flags_vertical та Control.size_flags_stretch_ratio.
Якщо жоден з вузлів Control перед перетягувачем не розгорнуто, позиція за замовчуванням буде на початку SplitContainer. Якщо жоден з вузлів Control після перетягувача не розгорнуто, позиція за замовчуванням буде в кінці SplitContainer. Якщо перетягувач знаходиться між розгорнутими вузлами Control, позиція за замовчуванням буде посередині, на основі Control.size_flags_stretch_ratio та мінімальних розмірів.
Примітка: Якщо зміщення розділення призводять до перекриття вузлів Control, перший розділення матиме пріоритет під час визначення позицій.
Note: The returned array is copied and any changes to it will not update the original property value. See PackedInt32Array for more details.
bool touch_dragger_enabled = false 🔗
Якщо значення true, буде ввімкнено сенсорний маркер перетягування для кращої зручності використання на менших екранах. На відміну від стандартного інструмента захоплення, цей маркер перетягування перекриває дочірні елементи SplitContainer і не впливає на їх мінімальну відстань. Стандартний інструмент захоплення більше не відображатиметься, коли ця опція ввімкнена.
Якщо true, то SplitContainer влаштує своїх дітей вертикально, а не горизонтально.
Не можна змінити при використанні HSplitContainer і VSplitContainer.
Описи методів
void clamp_split_offset(priority_index: int = 0) 🔗
Фіксує значення split_offsets, щоб переконатися, що вони знаходяться в допустимих діапазонах і не перекриваються одне з одним. У разі перекриття цей метод надає пріоритет одному зміщенню розділення (за індексом priority_index), фіксуючи до нього будь-які зміщення розділення, що перекриваються.
Control get_drag_area_control() 🔗
Застаріло: Use the first element of get_drag_area_controls() instead.
Повертає область перетягування Control. Наприклад, ви можете перемістити попередньо налаштовану кнопку в область перетягування Control, щоб вона рухалася разом із роздільною смугою. Спробуйте встановити прив’язки Button на center перед викликом reparent().
$BarnacleButton.reparent($SplitContainer.get_drag_area_control())
Примітка: Область перетягування Control малюється поверх дочірніх елементів SplitContainer, тому об’єкти малювання CanvasItem, викликані з Control, і дочірні об’єкти, додані до Control, також відображатимуться над дочірніми елементами SplitContainer. Спробуйте встановити Control.mouse_filter користувацьких дочірніх елементів на Control.MOUSE_FILTER_IGNORE, щоб запобігти блокуванню перетягування мишею, якщо це потрібно.
Попередження: Це обов’язковий внутрішній вузол, його видалення та звільнення може призвести до збою.
Array[Control] get_drag_area_controls() 🔗
Повертає Array елементів керування області перетягування Control. Це взаємодіючі вузли Control між кожним дочірнім елементом. Наприклад, це можна використовувати для додавання попередньо налаштованої кнопки до області перетягування Control, щоб вона рухалася разом із роздільною панеллю. Спробуйте встановити якорі Button на center перед викликом методу Node.reparent().
$BarnacleButton.reparent($SplitContainer.get_drag_area_controls()[0])
Примітка: Елементи керування області перетягування Control малюються поверх дочірніх елементів SplitContainer, тому CanvasItem малює об'єкти, викликані з області перетягування, а дочірні елементи, додані до неї, також відображатимуться поверх дочірніх елементів SplitContainer. Спробуйте встановити Control.mouse_filter для користувацьких дочірніх елементів на Control.MOUSE_FILTER_IGNORE, щоб запобігти блокуванню перетягування миші, якщо це необхідно.
Попередження: Це обов'язкові внутрішні вузли, їх видалення або звільнення може призвести до збою.
Описи тематичної нерухомості
Color touch_dragger_color = Color(1, 1, 1, 0.3) 🔗
Колір сенсорного перетягувача.
Color touch_dragger_hover_color = Color(1, 1, 1, 0.6) 🔗
Колір сенсорного перетягувача при наведенні курсора.
Color touch_dragger_pressed_color = Color(1, 1, 1, 1) 🔗
Колір сенсорного перетягувача при натисканні.
Логічне значення. Якщо 1 (true), граббери автоматично приховаються, коли вони не знаходяться під курсором. Якщо 0 (false), граббери завжди видимі. dragger_visibility має бути DRAGGER_VISIBLE.
int minimum_grab_thickness = 6 🔗
Мінімальна товщина області, на яку користувачі можуть натиснути, щоб захопити розділювальну панель. Це гарантує, що розділювальну панель все ще можна буде перетягнути, якщо розмір separation або h_grabber / v_grabber занадто вузький для легкого вибору.
Товщина роздільної смуги, тобто проміжок між кожним дочірнім елементом контейнера. Це значення перевизначається розміром значка граббера, якщо dragger_visibility встановлено на DRAGGER_VISIBLE або DRAGGER_HIDDEN, а separation менше за розмір значка граббера на тій самій осі.
Примітка: Щоб отримати значення separation, менші за розмір значка граббера, наприклад, лінію росту 1 px, встановіть h_grabber або v_grabber на нове ImageTexture, що фактично встановлює розмір значка граббера на 0 px.
Піктограма, яка використовується для елементів захоплення, намальованих у розділеннях. Використовується лише в HSplitContainer та VSplitContainer. Для SplitContainer дивіться h_grabber та v_grabber.
Піктограма, яка використовується для граберів, що намальовані на розділеннях, коли vertical має значення false.
Піктограма, яка використовується для маркера перетягування, коли touch_dragger_enabled має значення true, а vertical має значення false.
Піктограма, яка використовується для ручки перетягування, коли touch_dragger_enabled має значення true. Використовується лише в HSplitContainer та VSplitContainer. Для SplitContainer дивіться h_touch_dragger та v_touch_dragger.
Піктограма, яка використовується для елементів захоплення, що намальовані на розділеннях, коли vertical має значення true.
Піктограма, яка використовується для маркера перетягування, коли touch_dragger_enabled має значення true, а vertical має значення true.
StyleBox split_bar_background 🔗
Визначає фон розділеної смуги, якщо її товщина більша за нуль.