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.

SplitContainer

Eredita: Container < Control < CanvasItem < Node < Object

Ereditato da: HSplitContainer, VSplitContainer

Un contenitore che organizza controlli figlio orizzontalmente o verticalmente e fornisce trascinatori per regolare i rapporti di divisione tra di essi.

Descrizione

Un contenitore che organizza controlli figlio orizzontalmente o verticalmente e crea trascinatori tra di essi. Il trascinatori si possono trascinare per cambiare i rapporti di dimensione tra i controlli figlio.

Tutorial

Proprietà

bool

collapsed

false

bool

drag_area_highlight_in_editor

false

int

drag_area_margin_begin

0

int

drag_area_margin_end

0

int

drag_area_offset

0

bool

drag_nested_intersections

false

DraggerVisibility

dragger_visibility

0

bool

dragging_enabled

true

int

split_offset

0

PackedInt32Array

split_offsets

PackedInt32Array(0)

bool

touch_dragger_enabled

false

bool

vertical

false

Metodi

void

clamp_split_offset(priority_index: int = 0)

Control

get_drag_area_control()

Array[Control]

get_drag_area_controls()

Proprietà del tema

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)

int

autohide

1

int

minimum_grab_thickness

6

int

separation

12

Texture2D

grabber

Texture2D

h_grabber

Texture2D

h_touch_dragger

Texture2D

touch_dragger

Texture2D

v_grabber

Texture2D

v_touch_dragger

StyleBox

split_bar_background


Segnali

drag_ended() 🔗

Emesso quando l'utente finisce di trascinare.


drag_started() 🔗

Emesso quando l'utente inizia a trascinare.


dragged(offset: int) 🔗

Emesso quando un trascinatore qualsiasi viene trascinato dall'utente.


Enumerazioni

enum DraggerVisibility: 🔗

DraggerVisibility DRAGGER_VISIBLE = 0

L'icona del trascinatore divisore è sempre visibile quando autohide è false, altrimenti visibile solo quando il cursore ci passa sopra.

Le dimensioni dell'icona del grabber determinano la separazione minima (separation).

L'icona del trascinatore viene nascosta automaticamente se la lunghezza dell'icona del grabber è maggiore della barra di divisione.

DraggerVisibility DRAGGER_HIDDEN = 1

L'icona del trascinatore divisore non è mai visibile, a prescindere dal valore di autohide.

Le dimensioni dell'icona del grabber determinano la separazione minima (separation).

DraggerVisibility DRAGGER_HIDDEN_COLLAPSED = 2

L'icona del trascinatore divisore non è visibile, e la barra di divisione è ridotta a spessore zero.


Descrizioni delle proprietà

bool collapsed = false 🔗

  • void set_collapsed(value: bool)

  • bool is_collapsed()

Se true, i trascinatori saranno disabilitati e i figli saranno dimensionati come se split_offsets fosse 0.


bool drag_area_highlight_in_editor = false 🔗

  • void set_drag_area_highlight_in_editor(value: bool)

  • bool is_drag_area_highlight_in_editor_enabled()

Evidenzia il Rect2 dell'area di trascinamento in modo da poter vedere dove si trova durante lo sviluppo. L'area di trascinamento è dorata se dragging_enabled è true, e rossa se false.


int drag_area_margin_begin = 0 🔗

  • void set_drag_area_margin_begin(value: int)

  • int get_drag_area_margin_begin()

Riduce le dimensioni dell'area di trascinamento e di split_bar_background della barra di divisione all'inizio del contenitore.


int drag_area_margin_end = 0 🔗

  • void set_drag_area_margin_end(value: int)

  • int get_drag_area_margin_end()

Riduce le dimensioni dell'area di trascinamento e di split_bar_background della barra di divisione alla fine del contenitore.


int drag_area_offset = 0 🔗

  • void set_drag_area_offset(value: int)

  • int get_drag_area_offset()

Sposta l'area di trascinamento sull'asse del contenitore per evitare che si sovrapponga alla ScrollBar o ad altri Control selezionabili di un nodo figlio.


bool drag_nested_intersections = false 🔗

  • void set_drag_nested_intersections(value: bool)

  • bool is_dragging_nested_intersections()

Aggiunge trascinatori in più all'intersezione dei trascinatori di due SplitContainer per consentire di trascinare entrambi alla volta. Deve essere impostata su true per entrambi gli SplitContainer, e uno deve essere un discendente dell'altro. Devono inoltre essere ortogonali (avere i loro vertical diversi) e il discendente deve trovarsi accanto ad almeno uno dei trascinatori dell'antenato (entro minimum_grab_thickness).


DraggerVisibility dragger_visibility = 0 🔗

Determina la visibilità del trascinatore. Questa proprietà non determina se il trascinamento è abilitato o meno. Utilizzare dragging_enabled a questo scopo.


bool dragging_enabled = true 🔗

  • void set_dragging_enabled(value: bool)

  • bool is_dragging_enabled()

Abilita o disabilita il trascinamento diviso.


int split_offset = 0 🔗

  • void set_split_offset(value: int)

  • int get_split_offset()

Deprecato: Use split_offsets instead. The first element of the array is the split offset between the first two children.

Il primo elemento di split_offsets.


PackedInt32Array split_offsets = PackedInt32Array(0) 🔗

Offset in pixel per ciascun trascinatore. Ciascuno è l'offset della divisione tra i nodi Control prima e dopo il trascinatore, con 0 che indica la posizione predefinita. La posizione predefinita si basa sui flag di espansione e sulle dimensioni minime dei nodi Control. Vedi Control.size_flags_horizontal, Control.size_flags_vertical e Control.size_flags_stretch_ratio.

Se nessuno dei nodi Control prima del trascinatore è espanso, la posizione predefinita sarà all'inizio dello SplitContainer. Se nessuno dei nodi Control dopo il trascinatore è espanso, la posizione predefinita sarà alla fine dello SplitContainer. Se il trascinatore si trova tra nodi Control espansi, la posizione predefinita sarà al centro, in base ai valori di Control.size_flags_stretch_ratio e alle dimensioni minime.

Nota: Se gli offset di suddivisione fanno sovrapporre i nodi Control, la prima suddivisione avrà la priorità per risolvere le posizioni.

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 🔗

  • void set_touch_dragger_enabled(value: bool)

  • bool is_touch_dragger_enabled()

Se true, sarà abilitato un trascinatore ottimizzato per il tocco per migliorare l'usabilità su schermi più piccoli. A differenza del grabber standard, questo trascinatore si sovrappone agli elementi figlio del SplitContainer e non influisce sulla loro separazione minima. Il grabber standard non sarà più visualizzato quando questa opzione è abilitata.


bool vertical = false 🔗

  • void set_vertical(value: bool)

  • bool is_vertical()

Se true, lo SplitContainer organizzerà i suoi elementi figlio verticalmente, anziché orizzontalmente.

Non può essere modificato quando si utilizzano HSplitContainer e VSplitContainer.


Descrizioni dei metodi

void clamp_split_offset(priority_index: int = 0) 🔗

Limita i valori di split_offsets per garantire che rientrino in intervalli validi e non si sovrappongano. In caso di sovrapposizioni, questo metodo da priorità a un offset di suddivisione (all'indice priority_index) limitando a esso tutti gli offset di suddivisione sovrapposti.


Control get_drag_area_control() 🔗

Deprecato: Use the first element of get_drag_area_controls() instead.

Restituisce l'area di trascinamento Control. Ad esempio, è possibile spostare un pulsante preconfigurato nell'area di trascinamento Control in modo che scorra insieme alla barra di divisione. Provare a impostare gli ancoraggi del Button su center prima della chiamata reparent().

$BarnacleButton.reparent($SplitContainer.get_drag_area_control())

Nota: L'area di trascinamento Control viene disegnata sui figli di SplitContainer, quindi anche gli oggetti di disegno CanvasItem chiamati da Control e i figli aggiunti a Control appariranno sui figli di SplitContainer. Provare a impostare Control.mouse_filter dei figli personalizzati su Control.MOUSE_FILTER_IGNORE per evitare di bloccare il trascinamento del mouse, se è desiderato.

Attenzione: Questo è un nodo interno obbligatorio, rimuoverlo e liberarlo potrebbe causare un arresto anomalo.


Array[Control] get_drag_area_controls() 🔗

Restituisce un Array dei Control area di trascinamento. Questi sono i nodi Control interattivi tra ciascun elemento figlio. Ad esempio, è possibile spostare un pulsante preconfigurato in un Control area di trascinamento in modo che scorra insieme alla barra di divisione. Prova a impostare gli ancoraggi del Button su center prima di chiamare Node.reparent().

$BarnacleButton.reparent($SplitContainer.get_drag_area_controls()[0])

Nota: I Control area di trascinamento sono disegnati sopra i figli di SplitContainer, quindi anche gli oggetti di disegno CanvasItem chiamati da un'area di trascinamento e i figli aggiunti appariranno sui figli di SplitContainer. Provare a impostare Control.mouse_filter dei figli personalizzati su Control.MOUSE_FILTER_IGNORE per evitare di bloccare il trascinamento del mouse, se è desiderato.

Attenzione: Questi sono nodi interni obbligatori, rimuoverli o liberarli potrebbe causare un arresto anomalo.


Descrizioni delle proprietà del tema

Color touch_dragger_color = Color(1, 1, 1, 0.3) 🔗

Il colore del trascinatore di tocco.


Color touch_dragger_hover_color = Color(1, 1, 1, 0.6) 🔗

Il colore del trascinatore di tocco al passaggio del mouse.


Color touch_dragger_pressed_color = Color(1, 1, 1, 1) 🔗

Il colore del trascinatore di tocco quando premuto.


int autohide = 1 🔗

Valore booleano. Se 1 (true), i trascinatori si nasconderanno automaticamente quando non si trovano sotto il cursore. Se 0 (false), i trascinatori sono sempre visibili. dragger_visibility deve essere DRAGGER_VISIBLE.


int minimum_grab_thickness = 6 🔗

Lo spessore minimo dell'area su cui gli utenti possono cliccare per afferrare una barra di divisione. Questo garantisce che la barra di divisione sia comunque trascinabile se separation o le dimensioni di h_grabber / v_grabber sono troppo fini da selezionare facilmente.


int separation = 12 🔗

Lo spessore della barra di divisione, ovvero lo spazio tra ogni figlio del contenitore. Questo è sovrascritto dalle dimensioni dell'icona del grabber se dragger_visibility è impostato su DRAGGER_VISIBLE o DRAGGER_HIDDEN e separation è minore della dimensione dell'icona del grabber sullo stesso asse.

Nota: Per ottenere valori di separation minori delle dimensioni dell'icona del grabber, ad esempio una linea sottile di 1 px, imposta h_grabber o v_grabber su un nuovo ImageTexture, che imposta effettivamente le dimensioni dell'icona del grabber su 0 px.


Texture2D grabber 🔗

L'icona utilizzata per il grabber disegnato nelle separazioni. È utilizzata solo in HSplitContainer e VSplitContainer. Per SplitContainer, vedi invece h_grabber e v_grabber.


Texture2D h_grabber 🔗

L'icona utilizzata per il grabber disegnato nelle separazioni quando vertical è false.


Texture2D h_touch_dragger 🔗

L'icona utilizzata per il trascinatore quando touch_dragger_enabled è true e vertical è false.


Texture2D touch_dragger 🔗

L'icona utilizzata per il trascinatore quando touch_dragger_enabled è true. Questa è utilizzata solo in HSplitContainer e VSplitContainer. Per SplitContainer, vedi invece h_touch_dragger e v_touch_dragger.


Texture2D v_grabber 🔗

L'icona utilizzata per il grabber disegnato nelle separazioni quando vertical è true.


Texture2D v_touch_dragger 🔗

L'icona utilizzata per trascinatore quando touch_dragger_enabled è true e vertical è true.


StyleBox split_bar_background 🔗

Determina lo sfondo della barra di divisione se il suo spessore è maggiore di zero.