Thanks Ivan for your helpful answer. Very handy.
I've try to launch your python script from the script editor and it does
exactly what I'm aiming for. My question now is how can I add those lines to my
existing group/gizmo? Here you are the code of my Group, as you can see I've
attached the code at the end but obviously it doesn't work.
#############################################
Group {
inputs 0
name V_Multilabeler1
help "V!ctor 1.5v1\nV_Multilabeler\n©2011 Victor Perez. All rights
reserved\nwww.victorperez.co.uk"
xpos -2237
ypos 52
addUserKnob {20 V_Multilabeler}
addUserKnob {18 target_tile_color l "tile color" t "Select a color for the
tile"}
target_tile_color {0.8 0.8 0.8}
addUserKnob {41 target_label l label T LabelProperties.label}
addUserKnob {41 note_font_1 l font T LabelProperties.note_font}
addUserKnob {41 note_font_size_1 l "" -STARTLINE T
LabelProperties.note_font_size}
addUserKnob {41 note_font_color_1 l color -STARTLINE T
LabelProperties.note_font_color}
addUserKnob {26 space_01 l " " T " "}
addUserKnob {6 box_tile_color l "change tile color" t "Change the tile color"
+STARTLINE}
box_tile_color true
addUserKnob {6 box_label l "change label" t "Change the label" -STARTLINE}
box_label true
addUserKnob {22 execute_apply l Apply t "Apply changes to selected nodes" T
"import colorsys\n\n# knobs to variables\ntarget_tile_color =
nuke.thisNode().knob('target_tile_color').getValue()\ntarget_label =
nuke.toNode('LabelProperties').knob('label').value()\nbox_tile_color =
nuke.thisNode().knob('box_tile_color').value()\nbox_label =
nuke.thisNode().knob('box_label').value()\n\n# RGB to HEX
translator\ntarget_tile_color_r = target_tile_color\[0]\ntarget_tile_color_g =
target_tile_color\[1]\ntarget_tile_color_b = target_tile_color\[2]\nhexColour =
int('%02x%02x%02x%02x' %
(target_tile_color_r*255,target_tile_color_g*255,target_tile_color_b*255,1),
16)\n\n# tile color action\nif box_tile_color:\n nuke.root().begin()\n
for i in nuke.selectedNodes():\n
i.knob('tile_color').setValue(hexColour)\nelse:\n pass\n\n# label action\nif
box_label:\n nuke.root().begin()\n for i in nuke.selectedNodes():\n
i.knob('label').setValue(target_label)\nelse:\n pass" +STARTLINE}
addUserKnob {22 execute_default l "Revert to Default" t "Revert to default
color tile and/or label to selected nodes" -STARTLINE T "import colorsys\n\n#
knobs to variables\ntarget_tile_color =
nuke.thisNode().knob('target_tile_color').getValue()\ntarget_label =
nuke.thisNode().knob('target_label').value()\nbox_tile_color =
nuke.thisNode().knob('box_tile_color').value()\nbox_label =
nuke.thisNode().knob('box_label').value()\n\n# tile color action\nif
box_tile_color:\n nuke.root().begin()\n for i in nuke.selectedNodes():\n
i.knob('tile_color').setValue(0)\nelse:\n pass\n\n# label action\nif
box_label:\n nuke.root().begin()\n for i in nuke.selectedNodes():\n
i.knob('label').setValue(None)\nelse:\n pass"}
addUserKnob {26 space_02 l " " T " "}
addUserKnob {26 automated_tasks l "Automated Tasks"}
addUserKnob {22 execute_spectrum_tile_color l "Color Spectrum Tiles" t "Change
the tile color of selected nodes with different steps of the color spectrum" T
"import colorsys\n\nnuke.root().begin()\nvariations =
len(nuke.selectedNodes())\nfor num,i in enumerate(nuke.selectedNodes()):\n
newcolor = float(num)/float(variations)\n setRGB =
colorsys.hsv_to_rgb(newcolor, 1, 1)\n # Float R, G, and B values for the
color you're after\n r = setRGB\[0]\n g = setRGB\[1]\n b =
setRGB\[2]\n hexColour = int('%02x%02x%02x%02x' % (r*255,g*255,b*255,1),
16)\n i\['tile_color'].setValue(hexColour)" +STARTLINE}
addUserKnob {22 execute_class_in_label l "Node Class as Label" t "Change the
label to selected nodes with its node class" -STARTLINE T
"nuke.root().begin()\nfor i in nuke.selectedNodes():\n
i.knob('label').setValue(nuke.selectedNode().Class())"}
addUserKnob {26 attach_an_image l "Attach an Image"}
addUserKnob {2 image_file l "image file" t "Browse for an image to be
attached"}
addUserKnob {22 execute_attach_image_to_nodes l "Attach Image" t "Attache the
image selected in the previous knob to the selected nodes in the node graph" T
"image_file = nuke.thisNode().knob('image_file').value()\nprint image_file"
+STARTLINE}
addUserKnob {22 execute_remove_image l "Remove Image" t "Remove any attached
image in the selected nodes in the node graph" -STARTLINE}
}
NoOp {
inputs 0
name LabelProperties
selected false
xpos 4
ypos 261
}
stringKnob = nuke.EvalString_Knob('image_file')
buttonKnob = nuke.PyScript_Knob('fileOpen', '<img
src=":qrc/images/File_Knob.png">')
buttonKnob.setValue("""file = nuke.getClipname('Choose sequence...', pattern =
'*.png', default ='/default/path')
if file:
nuke.thisNode()['image_file'].setValue(file)
""")
nuke.thisNode().addKnob(stringKnob)
nuke.thisNode().addKnob(buttonKnob)
end_group
#############################################
By the way, the 'File_Knob.png' is the same as the default file icon but
bigger, if it exists, do you know the name of the png image for the smaller
version (same as Nuke default)?
Thanks a lot!
Victor
_______________________________________________
Nuke-python mailing list
[email protected], http://forums.thefoundry.co.uk/
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python