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.

GraphEdit

Hérite de : Control < CanvasItem < Node < Object

Un éditeur pour les structures en graphe, utilisant des GraphNodes.

Description

GraphEdit fournit des outils pour la création, la manipulation et l'affichage de divers graphes. Son objectif principal dans le moteur est d'alimenter les systèmes de programmation visuelle, comme les shaders visuels, mais il est également disponible à l'utilisation dans des projets utilisateur.

GraphEdit en soi n'est qu'un conteneur vide, représentant une grille infinie où des GraphNodes peuvent être placés. Chaque GraphNode représente un nœud dans le graphe, une unité de données unique dans le système connecté. GraphEdit, à son tour, aide à contrôler diverses interactions avec les nœuds et entre les nœuds. Lorsque l'utilisateur tente de connecter, de déconnecter ou de supprimer un GraphNode, un signal est émis dans le GraphEdit, mais aucune action n'est prise par défaut. Il incombe au développeur d'utiliser ce contrôle pour implémenter la logique nécessaire qui détermine comment chaque demande doit être traitée.

Performance : Il est fortement conseillé d'activer le mode de faible utilisation du processeur (voir OS.low_processor_usage_mode) lors de l'utilisation des GraphEdits.

Note : Gardez à l'esprit que Node.get_children() renverra également le nœud de la couche de connexion nommé _connection_layer en raison de limitations techniques. Ce comportement peut changer dans des versions futures.

Propriétés

bool

clip_contents

true (overrides Control)

bool

connection_lines_antialiased

true

float

connection_lines_curvature

0.5

float

connection_lines_thickness

4.0

Array[Dictionary]

connections

[]

FocusMode

focus_mode

2 (overrides Control)

GridPattern

grid_pattern

0

bool

minimap_enabled

true

float

minimap_opacity

0.65

Vector2

minimap_size

Vector2(240, 160)

PanningScheme

panning_scheme

0

bool

right_disconnects

false

Vector2

scroll_offset

Vector2(0, 0)

bool

show_arrange_button

true

bool

show_grid

true

bool

show_grid_buttons

true

bool

show_menu

true

bool

show_minimap_button

true

bool

show_zoom_buttons

true

bool

show_zoom_label

false

int

snapping_distance

20

bool

snapping_enabled

true

Dictionary

type_names

{}

float

zoom

1.0

float

zoom_max

2.0736003

float

zoom_min

0.23256795

float

zoom_step

1.2

Méthodes

PackedVector2Array

_get_connection_line(from_position: Vector2, to_position: Vector2) virtual const

bool

_is_in_input_hotzone(in_node: Object, in_port: int, mouse_position: Vector2) virtual

bool

_is_in_output_hotzone(in_node: Object, in_port: int, mouse_position: Vector2) virtual

bool

_is_node_hover_valid(from_node: StringName, from_port: int, to_node: StringName, to_port: int) virtual

void

add_valid_connection_type(from_type: int, to_type: int)

void

add_valid_left_disconnect_type(type: int)

void

add_valid_right_disconnect_type(type: int)

void

arrange_nodes()

void

attach_graph_element_to_frame(element: StringName, frame: StringName)

void

clear_connections()

Error

connect_node(from_node: StringName, from_port: int, to_node: StringName, to_port: int, keep_alive: bool = false)

void

detach_graph_element_from_frame(element: StringName)

void

disconnect_node(from_node: StringName, from_port: int, to_node: StringName, to_port: int)

void

force_connection_drag_end()

Array[StringName]

get_attached_nodes_of_frame(frame: StringName)

Dictionary

get_closest_connection_at_point(point: Vector2, max_distance: float = 4.0) const

int

get_connection_count(from_node: StringName, from_port: int)

PackedVector2Array

get_connection_line(from_node: Vector2, to_node: Vector2) const

Array[Dictionary]

get_connection_list_from_node(node: StringName) const

Array[Dictionary]

get_connections_intersecting_with_rect(rect: Rect2) const

GraphFrame

get_element_frame(element: StringName)

HBoxContainer

get_menu_hbox()

bool

is_node_connected(from_node: StringName, from_port: int, to_node: StringName, to_port: int)

bool

is_valid_connection_type(from_type: int, to_type: int) const

void

remove_valid_connection_type(from_type: int, to_type: int)

void

remove_valid_left_disconnect_type(type: int)

void

remove_valid_right_disconnect_type(type: int)

void

set_connection_activity(from_node: StringName, from_port: int, to_node: StringName, to_port: int, amount: float)

void

set_selected(node: Node)

Propriétés du thème

Color

activity

Color(1, 1, 1, 1)

Color

connection_hover_tint_color

Color(0, 0, 0, 0.3)

Color

connection_rim_color

Color(0.1, 0.1, 0.1, 0.6)

Color

connection_valid_target_tint_color

Color(1, 1, 1, 0.4)

Color

grid_major

Color(1, 1, 1, 0.2)

Color

grid_minor

Color(1, 1, 1, 0.05)

Color

selection_fill

Color(1, 1, 1, 0.3)

Color

selection_stroke

Color(1, 1, 1, 0.8)

int

connection_hover_thickness

0

int

port_hotzone_inner_extent

22

int

port_hotzone_outer_extent

26

Texture2D

grid_toggle

Texture2D

layout

Texture2D

minimap_toggle

Texture2D

snapping_toggle

Texture2D

zoom_in

Texture2D

zoom_out

Texture2D

zoom_reset

StyleBox

menu_panel

StyleBox

panel

StyleBox

panel_focus


Signaux

begin_node_move() 🔗

Émis au début du mouvement d'un GraphElement.


connection_drag_ended() 🔗

Émis à la fin d'un glissement de connexion.


connection_drag_started(from_node: StringName, from_port: int, is_output: bool) 🔗

Émis au début d'un glissement de connexion.


connection_from_empty(to_node: StringName, to_port: int, release_position: Vector2) 🔗

Émis lorsque l'utilisateur fait glisser une connexion d'un port d'entrée vers l'espace vide du graphe.


connection_request(from_node: StringName, from_port: int, to_node: StringName, to_port: int) 🔗

Émis au GraphEdit lorsque la connexion entre le port from_port du GraphNode from_node et le port to_port du GraphNode to_node est tentée d'être créée.


connection_to_empty(from_node: StringName, from_port: int, release_position: Vector2) 🔗

Émis lorsque l'utilisateur fait glisser une connexion d'un port de sortie vers l'espace vide du graphe.


copy_nodes_request() 🔗

Émis quand ce GraphEdit capture une action ui_copy (Ctrl + C par défaut). En général, ce signal indique que les GraphElements sélectionnés devraient être copiés.


cut_nodes_request() 🔗

Émis quand ce GraphEdit capture une action ui_cut (Ctrl + X par défaut). En général, ce signal indique que les GraphElements sélectionnés devraient être coupés.


delete_nodes_request(nodes: Array[StringName]) 🔗

Émis quand ce GraphEdit capture une action ui_graph_delete (Delete par défaut).

nodes est un tableau de nœuds qui devraient être supprimés. Cela inclut généralement tous les nœuds.


disconnection_request(from_node: StringName, from_port: int, to_node: StringName, to_port: int) 🔗

Émis au GraphEdit lorsque la connexion entre le port from_port du GraphNode from_node et le port to_port du GraphNode to_node est tentée d'être supprimée.


duplicate_nodes_request() 🔗

Émis quand ce GraphEdit capture une action ui_graph_duplicate (Ctrl + D par défaut). En général, ce signal indique que les GraphElements sélectionnés devraient être dupliqués.


end_node_move() 🔗

Émis à la fin du mouvement d'un GraphElement.


frame_rect_changed(frame: GraphFrame, new_rect: Rect2) 🔗

Émis lorsque le GraphFrame frame est redimensionné à new_rect.


graph_elements_linked_to_frame_request(elements: Array, frame: StringName) 🔗

Émis lorsqu'un ou plusieurs GraphElement sont déposés sur le GraphFrame nommé frame, lorsqu'ils n'étaient pas auparavant attachés à un autre élément.

elements est un tableau de GraphElement à attacher.


node_deselected(node: Node) 🔗

Émis lorsque le nœud GraphElement donné est désélectionné.


node_selected(node: Node) 🔗

Émis lorsque le nœud GraphElement donné est sélectionné.


paste_nodes_request() 🔗

Émis quand ce GraphEdit capture une action ui_paste (Ctrl + V par défaut). En général, ce signal indique que les GraphElements sélectionnés devraient être collés.


popup_request(at_position: Vector2) 🔗

Émis lorsqu'une popup est demandée. Arrive lors d'un clic droit dans le GraphEdit. at_position est la position du pointeur de la souris lorsque le signal est envoyé.


scroll_offset_changed(offset: Vector2) 🔗

Émis lorsque le décalage du défilement est modifié par l'utilisateur. Il ne sera pas émis lorsque modifié depuis le code.


Énumérations

enum PanningScheme: 🔗

PanningScheme SCROLL_ZOOMS = 0

Molette souris va zoomer, Ctrl + Molette souris va déplacer la vue.

PanningScheme SCROLL_PANS = 1

Molette souris va déplacer la vue, Ctrl + Molette souris va zoomer.


enum GridPattern: 🔗

GridPattern GRID_PATTERN_LINES = 0

Dessine la grille en utilisant des lignes pleines.

GridPattern GRID_PATTERN_DOTS = 1

Dessine la grille en utilisant des pointillés.


Descriptions des propriétés

bool connection_lines_antialiased = true 🔗

  • void set_connection_lines_antialiased(value: bool)

  • bool is_connection_lines_antialiased()

Si true, les lignes entre les nœuds utiliseront l'anticrénleage.


float connection_lines_curvature = 0.5 🔗

  • void set_connection_lines_curvature(value: float)

  • float get_connection_lines_curvature()

La courbure des lignes entre les nœuds. 0 résulte en des lignes droites.


float connection_lines_thickness = 4.0 🔗

  • void set_connection_lines_thickness(value: float)

  • float get_connection_lines_thickness()

L'épaisseur des lignes entre les nœuds.


Array[Dictionary] connections = [] 🔗

Les connexions entre des GraphNodes.

Un lien est représenté par un Dictionary sous la forme :

{
    from_node: StringName, #nœud de début
    from_port: int, #port de début
    to_node: StringName, #nœud de fin
    to_port: int, #port de fin
    keep_alive: bool #garder en vie
}

Les connexions avec keep_alive défini à false peuvent être supprimées automatiquement si elles sont invalides lors d'un redessin.


GridPattern grid_pattern = 0 🔗

Le motif utilisé pour dessiner la grille.


bool minimap_enabled = true 🔗

  • void set_minimap_enabled(value: bool)

  • bool is_minimap_enabled()

Si true, la mini-carte est visible.


float minimap_opacity = 0.65 🔗

  • void set_minimap_opacity(value: float)

  • float get_minimap_opacity()

L'opacité du rectangle de la mini-carte.


Vector2 minimap_size = Vector2(240, 160) 🔗

La taille du rectangle de la mini-carte. La carte elle-même est basée sur la taille de la zone de grille et est mise à l'échelle pour s'adapter à ce rectangle.


PanningScheme panning_scheme = 0 🔗

Définit le schéma de contrôle pour le panorama avec la molette de la souris.


bool right_disconnects = false 🔗

  • void set_right_disconnects(value: bool)

  • bool is_right_disconnects_enabled()

Si true, permet de déconnecter les connexions existantes dans le GraphEdit en faisant glisser l'extrémité droite.


Vector2 scroll_offset = Vector2(0, 0) 🔗

Le décalage du défilement.


bool show_arrange_button = true 🔗

  • void set_show_arrange_button(value: bool)

  • bool is_showing_arrange_button()

Si true, le bouton pour arranger automatiquement les nœuds du graphe est visible.


bool show_grid = true 🔗

  • void set_show_grid(value: bool)

  • bool is_showing_grid()

Si true, la grille est visible.


bool show_grid_buttons = true 🔗

  • void set_show_grid_buttons(value: bool)

  • bool is_showing_grid_buttons()

Si true, les boutons qui permettent de configurer la grille et les options d’aimantation sont visibles.


bool show_menu = true 🔗

  • void set_show_menu(value: bool)

  • bool is_showing_menu()

Si true, la barre d'outils du menu est visible.


bool show_minimap_button = true 🔗

  • void set_show_minimap_button(value: bool)

  • bool is_showing_minimap_button()

Si true, le bouton pour activer/désactiver la mini-carte est visible.


bool show_zoom_buttons = true 🔗

  • void set_show_zoom_buttons(value: bool)

  • bool is_showing_zoom_buttons()

Si true, les boutons qui permettent de modifier et de réinitialiser le niveau de zoom sont visibles.


bool show_zoom_label = false 🔗

  • void set_show_zoom_label(value: bool)

  • bool is_showing_zoom_label()

Si true, le libellé avec le niveau de zoom actuel est visible. Le niveau de zoom est affiché en pourcentage.


int snapping_distance = 20 🔗

  • void set_snapping_distance(value: int)

  • int get_snapping_distance()

La distance de magnétisation en pixels, détermine également la distance entre les lignes de la grille.


bool snapping_enabled = true 🔗

  • void set_snapping_enabled(value: bool)

  • bool is_snapping_enabled()

Si true, la magnétisation est activée.


Dictionary type_names = {} 🔗

Dictionary of human-readable port type names.


float zoom = 1.0 🔗

La valeur de zoom actuelle.


float zoom_max = 2.0736003 🔗

  • void set_zoom_max(value: float)

  • float get_zoom_max()

La valeur maximale du zoom.


float zoom_min = 0.23256795 🔗

  • void set_zoom_min(value: float)

  • float get_zoom_min()

La valeur minimale du zoom.


float zoom_step = 1.2 🔗

  • void set_zoom_step(value: float)

  • float get_zoom_step()

Le pas entre chaque niveau de zoom.


Descriptions des méthodes

PackedVector2Array _get_connection_line(from_position: Vector2, to_position: Vector2) virtual const 🔗

Méthode virtuelle qui peut être redéfinie pour personnaliser la façon dont les connexions sont dessinées.


bool _is_in_input_hotzone(in_node: Object, in_port: int, mouse_position: Vector2) virtual 🔗

Renvoie si la position de la souris mouse_position est dans la zone chaude des entrées (hot zone).

Par défaut, une zone chaude est une position Rect2 positionnée telle que son centre est à in_node.GraphNode.get_input_port_position()(in_port) (Pour le cas de la sortie, appelez plutôt GraphNode.get_output_port_position()). La largeur de la zone chaude est deux fois la propriété du Theme port_grab_distance_horizontal, et sa hauteur est deux fois la propriété port_grab_distance_vertical.

Voici un échantillon de code pour démarrer :

func _is_in_input_hotzone(in_node, in_port, mouse_position):
    var taille_port = Vector2(get_theme_constant("port_grab_distance_horizontal"), get_theme_constant("port_grab_distance_vertical"))
    var position_port = in_node.get_position() + in_node.get_input_port_position(in_port) - taille_port / 2
    var rect = Rect2(position_port, taille_port)

    return rect.has_point(mouse_position)

bool _is_in_output_hotzone(in_node: Object, in_port: int, mouse_position: Vector2) virtual 🔗

Renvoie si la position de la souris mouse_position est dans la zone chaude des sorties (hot zone). Pour plus d'informations sur les zones chaudes, voir _is_in_input_hotzone().

Voici un échantillon de code pour démarrer :

func _is_in_output_hotzone(in_node, in_port, mouse_position):
    var taille_port = Vector2(get_theme_constant("port_grab_distance_horizontal"), get_theme_constant("port_grab_distance_vertical"))
    var position_port = in_node.get_position() + in_node.get_output_port_position(in_port) - taille_port / 2
    var rect = Rect2(position_port, taille_port)

    return rect.has_point(mouse_position)

bool _is_node_hover_valid(from_node: StringName, from_port: int, to_node: StringName, to_port: int) virtual 🔗

Cette méthode virtuelle peut être utilisée pour insérer une détection d'erreur supplémentaire lorsque l'utilisateur fait glisser une connexion sur un port valide.

Renvoie true si la connexion est effectivement valide ou renvoie false si la connexion est impossible. Si la connexion est impossible, aucune magnétisation vers le port et donc aucune demande de connexion à ce port ne se produira.

Dans cet exemple, une connexion au même nœud est supprimée :

func _is_node_hover_valid(from, from_port, to, to_port):
    return from!= to

void add_valid_connection_type(from_type: int, to_type: int) 🔗

Autorise la connexion entre deux types de port différents. Le type de port est défini individuellement pour le port gauche et droit de chaque emplacement avec la méthode GraphNode.set_slot().

Voir aussi is_valid_connection_type() et remove_valid_connection_type().


void add_valid_left_disconnect_type(type: int) 🔗

Autorise de déconnecter des nœuds en tirant depuis le port gauche de l'emplacement du GraphNode s'il a le type spécifié. Voir aussi remove_valid_left_disconnect_type().


void add_valid_right_disconnect_type(type: int) 🔗

Autorise de déconnecter des nœuds en tirant depuis le port droit de l'emplacement du GraphNode s'il a le type spécifié. Voir aussi remove_valid_right_disconnect_type().


void arrange_nodes() 🔗

Réarrange les nœuds sélectionnés en une disposition avec des croisement minimaux entre les connexions et un écart horizontal et vertical uniforme entre les nœuds.


void attach_graph_element_to_frame(element: StringName, frame: StringName) 🔗

Attache le GraphElement element au cadre GraphFrame frame.


void clear_connections() 🔗

Supprime toutes les connexions entre les nœuds.


Error connect_node(from_node: StringName, from_port: int, to_node: StringName, to_port: int, keep_alive: bool = false) 🔗

Crée une connexion entre le port from_port du GraphNode from_node et le port to_port du GraphNode to_node. Si la connexion existe déjà, aucune connexion n'est créée.

Les connexions avec keep_alive défini à false peuvent être supprimées automatiquement si elles sont invalides lors d'un redessin.


void detach_graph_element_from_frame(element: StringName) 🔗

Détache le GraphElement element du GraphFrame auquel il est actuellement attaché.


void disconnect_node(from_node: StringName, from_port: int, to_node: StringName, to_port: int) 🔗

Supprime la connexion entre le port from_port du GraphNode from_node et le port to_port du GraphNode to_node. Si la connexion n'existe pas, aucune connexion ne sera supprimée.


void force_connection_drag_end() 🔗

Finit la création de la connexion actuelle. En d'autres termes, si vous faites glisser une connexion, vous pouvez utiliser cette méthode pour avorter le processus et supprimer la ligne qui suivait votre curseur.

Ceci est généralement utilisé avec connection_drag_started et connection_drag_ended pour ajouter du comportement personnalisé comme l'ajout de nœuds par des raccourcis.

Note : Cette méthode supprime tout autre signal de demande de connexion hormis connection_drag_ended.


Array[StringName] get_attached_nodes_of_frame(frame: StringName) 🔗

Renvoie un tableau de noms de nœuds qui sont attachés au GraphFrame avec le nom donné.


Dictionary get_closest_connection_at_point(point: Vector2, max_distance: float = 4.0) const 🔗

Renvoie la connexion la plus proche du point donné dans l'espace écran. Si aucune connexion n'est trouvée avec une portée de max_distance pixels, un Dictionary vide est renvoyé.

Une connexion est représentée comme un Dictionary sous la forme :

{
    from_node: StringName, #nœud de début
    from_port: int, #port de début
    to_node: StringName, #nœud de fin
    to_port: int, #port de fin
    keep_alive: bool #garder en vie
}

Par exemple, obtenir une connexion à une position donnée de la souris peut être effectué comme ceci :

var connexion = get_closest_connection_at_point(mouse_event.get_position())

int get_connection_count(from_node: StringName, from_port: int) 🔗

Renvoie le nombre de connexions du port from_port du nœud from_node.


PackedVector2Array get_connection_line(from_node: Vector2, to_node: Vector2) const 🔗

Renvoie les points qui constitueraient une connexion entre les nœuds from_node et to_node.


Array[Dictionary] get_connection_list_from_node(node: StringName) const 🔗

Renvoie un Array contenant une liste de toutes les connections pour le nœud node.

Une connexion est représentée par un Dictionary de la forme :

{
    from_node: StringName,
    from_port: int,
    to_node: StringName,
    to_port: int,
    keep_alive: bool
}

Example : Obtenir toutes les connexions sur un port spécifique :

func obtenir_liste_connexions_du_port(noeud, port):
    var connexions = get_connection_list_from_node(noeud)
    var resultat = []
    for connexion in connexions:
        var dict = {}
        if connexion["from_node"] == noeud and connexion["from_port"] == port:
            dict["node"] = connexion["to_node"]
            dict["port"] = connexion["to_port"]
            dict["type"] = "left"
            resultat.push_back(dict)
        elif connexion["to_node"] == noeud and connexion["to_port"] == port:
            dict["node"] = connexion["from_node"]
            dict["port"] = connexion["from_port"]
            dict["type"] = "right"
            resultat.push_back(dict)
    return resultat

Array[Dictionary] get_connections_intersecting_with_rect(rect: Rect2) const 🔗

Renvoie un Array contenant une liste de toutes les connexions qui intersectent le Rect2 donné.

Une connexion est représentée en tant que Dictionary sous la forme :

{
    from_node: StringName, #nœud de début
    from_port: int, #port de début
    to_node: StringName, #nœud de fin
    to_port: int, #port de fin
    keep_alive: bool #garder en vie
}

GraphFrame get_element_frame(element: StringName) 🔗

Renvoie le GraphFrame qui contient le GraphElement avec le nom donné.


HBoxContainer get_menu_hbox() 🔗

Obtient le HBoxContainer qui contient les contrôles de zoom et de magnétisation de la grille en haut à gauche du graphe. Vous pouvez utiliser cette méthode pour repositionner la barre d'outils ou pour y ajouter vos propres contrôles personnalisés.

Avertissement : Il s'agit d'un nœud interne requis, l'enlever et le libérer peut causer un plantage. Si vous voulez le cacher lui ou un de ses enfants, utilisez plutôt la propriété CanvasItem.visible.


bool is_node_connected(from_node: StringName, from_port: int, to_node: StringName, to_port: int) 🔗

Renvoie true si le port from_port du GraphNode from_node est connecté au port to_port du GraphNode to_node.


bool is_valid_connection_type(from_type: int, to_type: int) const 🔗

Renvoie s'il est possible de faire une connexion entre deux types de port différents. Le type de port est défini individuellement pour le port gauche et droit de chaque emplacement avec la méthode GraphNode.set_slot().

Voir aussi add_valid_connection_type() et remove_valid_connection_type().


void remove_valid_connection_type(from_type: int, to_type: int) 🔗

Interdit la connexion entre deux types de ports précédemment autorisés par add_valid_connection_type(). Le type de port est défini individuellement pour le port gauche et le port droit de chaque emplacement avec la méthode GraphNode.set_slot().

Voir aussi is_valid_connection_type().


void remove_valid_left_disconnect_type(type: int) 🔗

Disallows to disconnect nodes when dragging from the left port of the GraphNode's slot if it has the specified type. Use this to disable a disconnection previously allowed with add_valid_left_disconnect_type().


void remove_valid_right_disconnect_type(type: int) 🔗

Disallows to disconnect nodes when dragging from the right port of the GraphNode's slot if it has the specified type. Use this to disable a disconnection previously allowed with add_valid_right_disconnect_type().


void set_connection_activity(from_node: StringName, from_port: int, to_node: StringName, to_port: int, amount: float) 🔗

Définit la coloration de la connexion entre le port from_port du nœud from_node et du port to_port du nœud to_node avec la couleur fournie dans la propriété de thème activity. La couleur est linéairement interpolée entre la couleur de connexion et la couleur d'activité en utilisant amount comme poids.


void set_selected(node: Node) 🔗

Définit le nœud node spécifié comme celui sélectionné.


Descriptions des propriétés du thème

Color activity = Color(1, 1, 1, 1) 🔗

Couleur vers laquelle la ligne de connexion est interpolée en fonction de la valeur d'activité d'une connexion (voir set_connection_activity()).


Color connection_hover_tint_color = Color(0, 0, 0, 0.3) 🔗

Couleur qui est mélangée avec la ligne de connexion lorsque la souris la survole.


Color connection_rim_color = Color(0.1, 0.1, 0.1, 0.6) 🔗

Couleur de la bordure autour de chaque ligne de connexion utilisée pour rendre les lignes d'intersection plus distinguables.


Color connection_valid_target_tint_color = Color(1, 1, 1, 0.4) 🔗

Couleur qui est mélangée avec la ligne de connexion lorsque la connexion actuellement glissée survole un port cible valide.


Color grid_major = Color(1, 1, 1, 0.2) 🔗

Couleur des lignes/points principaux de la grille.


Color grid_minor = Color(1, 1, 1, 0.05) 🔗

Couleur des lignes/points secondaires de la grille.


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

La couleur de remplissage du rectangle de sélection.


Color selection_stroke = Color(1, 1, 1, 0.8) 🔗

La couleur de la bordure du rectangle de sélection.


int connection_hover_thickness = 0 🔗

Widens the line of a connection when the mouse is hovering over it by a percentage factor. A value of 0 disables the highlight. A value of 100 doubles the line width.


int port_hotzone_inner_extent = 22 🔗

La plage horizontale sur laquelle un port peut être saisi (côté intérieur).


int port_hotzone_outer_extent = 26 🔗

La plage horizontale sur laquelle un port peut être saisi (côté extérieur).


Texture2D grid_toggle 🔗

L'icône du bouton d'activation de la grille.


Texture2D layout 🔗

L'icône pour le bouton de mise en page pour auto-arranger le graphe.


Texture2D minimap_toggle 🔗

L'icône du bouton d'activation de la mini-carte.


Texture2D snapping_toggle 🔗

L'icône du bouton d'activation de la magnétisation.


Texture2D zoom_in 🔗

L'icône pour le bouton du zoom avant.


Texture2D zoom_out 🔗

L'icône pour le bouton du zoom arrière.


Texture2D zoom_reset 🔗

L'icône pour le bouton du rétablissement du zoom.


StyleBox menu_panel 🔗

There is currently no description for this theme property. Please help us by contributing one!


StyleBox panel 🔗

L’arrière-plan dessiné sous la grille.


StyleBox panel_focus 🔗

StyleBox utilisée quand le GraphEdit a le focus (lorsqu’utilisé avec des applications d'assistance).