QNodeEditor.edge.Edge#
- class QNodeEditor.edge.Edge(start: ~QNodeEditor.socket.Socket | None = None, end: ~QNodeEditor.socket.Socket | None = None, scene: NodeScene | None = None, theme: ~typing.Type[~QNodeEditor.themes.theme.Theme] = <class 'QNodeEditor.themes.dark.DarkTheme'>)#
Bases:
QObjectEdge container holding a start and end socket, and various utility methods.
This class represents a connection between two sockets. It is also possible for only one end of the edge to be connected to a socket.
Edges can only connect an input to an output, or vice versa. It is not possible to connect two inputs or two outputs together.
In general, it is not necessary to instantiate this class since it is handled by the node editor itself. However, in case you want to set the state of a node editor before opening it, this class can be used to already connect nodes in your scene.
Examples
To define an edge that connects two nodes:
node1 = SomeNode() # Node containing the output entry 'Output' node2 = AnotherNode() # Node containing the input entry 'Value' edge = Edge(node1['Output'], node2['Value'])
This adds an edge to the
NodeScenethe nodes are part of.- graphics#
Graphics object that is shown in the scene representing this edge
- Type:
Properties
Signal that is emitted when the edge type is changed
Get or set the end socket of the edge
Signal that is emitted when the end socket changed
Get or set the scene this edge is part of.
Get or set the start socket of the edge
Signal that is emitted when the start socket changed
Get or set the theme of the edge.
Methods
Create a new edge.
Get the state of this edge as a (JSON-safe) dictionary.
Remove this edge from the scene (and from the sockets it is connected to)
Remove the edge from the sockets it is connected to.
Set the state of this edge from a state dictionary.
Update the positions of the start and end points.
- __init__(start: ~QNodeEditor.socket.Socket | None = None, end: ~QNodeEditor.socket.Socket | None = None, scene: NodeScene | None = None, theme: ~typing.Type[~QNodeEditor.themes.theme.Theme] = <class 'QNodeEditor.themes.dark.DarkTheme'>)#
Create a new edge.
- Parameters:
start (
SocketorEntry, optional) – Start point of the edge (either a socket or an entry with a socket)end (
SocketorEntry, optional) – End point of the edge (either a socket or an entry with a socket)scene (
NodeScene, optional) – Scene to place the edge in. In general, this argument is not needed and the scene is deduced from the start and end sockets. If neither are provided, this argument is required.theme (Type[
Theme], optional) – Theme for the edge (default:DarkTheme)
- get_state() dict#
Get the state of this edge as a (JSON-safe) dictionary.
The dictionary contains:
start: the ID of the start socket (or None if no start socket)end: the ID of the end socket (or None if no end socket)
- Returns:
JSON-safe dictionary representing the edge state
- Return type:
dict
- remove() None#
Remove this edge from the scene (and from the sockets it is connected to) . :rtype: None
- remove_from_sockets() None#
Remove the edge from the sockets it is connected to.
- Return type:
None
- set_state(state: dict, lookup: dict[str, str] = None) bool#
Set the state of this edge from a state dictionary.
The dictionary contains:
start: the ID of the start socket (or None if no start socket)end: the ID of the end socket (or None if no end socket)
- Parameters:
state (dict) – Dictionary representation of the desired edge state
lookup (dict[str, str], optional) – Dictionary with mapping of state socket ID to actual socket ID. If the socket was added from a state with restore_id=True, these two are equal. Otherwise, the socket will take on a new unique ID, which will be the value in (key, value) pairs.
- Returns:
Whether setting the edge state succeeded
- Return type:
bool
- update_positions() None#
Update the positions of the start and end points.
Used when a node is moved to read the new positions of the start and end sockets and update them in the graphics of the edge.
- Return type:
None
- property end: Socket | None#
Get or set the end socket of the edge
Setting a new end node removes the edge from the old ending point (if it was set) and connects the edge to the new end point.
- property scene: NodeScene#
Get or set the scene this edge is part of.
Setting a new scene removes the edge from the old scene (if it was set) and adds the edge to the new scene.