@@ -370,7 +370,8 @@ def register_node(self, node, alias=None):
370370 """
371371 self ._node_factory .register_node (node , alias )
372372
373- def create_node (self , node_type , name = None , selected = True , color = None , pos = None ):
373+ def create_node (self , node_type , name = None , selected = True , color = None ,
374+ text_color = None , pos = None ):
374375 """
375376 Create a new node in the node graph.
376377
@@ -381,6 +382,7 @@ def create_node(self, node_type, name=None, selected=True, color=None, pos=None)
381382 name (str): set name of the node.
382383 selected (bool): set created node to be selected.
383384 color (tuple or str): node color (255, 255, 255) or '#FFFFFF'.
385+ text_color (tuple or str): node text color (255, 255, 255) or '#FFFFFF'.
384386 pos (list[int, int]): initial x, y position for the node (default: (0, 0)).
385387
386388 Returns:
@@ -407,11 +409,17 @@ def create_node(self, node_type, name=None, selected=True, color=None, pos=None)
407409 node .NODE_NAME = self .get_unique_name (name or node .NODE_NAME )
408410 node .model .name = node .NODE_NAME
409411 node .model .selected = selected
412+
413+ def format_color (clr ):
414+ if isinstance (clr , str ):
415+ clr = clr .strip ('#' )
416+ return tuple (int (clr [i :i + 2 ], 16 ) for i in (0 , 2 , 4 ))
417+ return clr
418+
410419 if color :
411- if isinstance (color , str ):
412- color = color [1 :] if color [0 ] is '#' else color
413- color = tuple (int (color [i :i + 2 ], 16 ) for i in (0 , 2 , 4 ))
414- node .model .color = color
420+ node .model .color = format_color (color )
421+ if text_color :
422+ node .model .text_color = format_color (text_color )
415423 if pos :
416424 node .model .pos = [float (pos [0 ]), float (pos [1 ])]
417425
0 commit comments