我想向节点添加一个旋钮,但我想确保它始终显示在特定选项卡内。
假设目标节点有两个选项卡,“A”和“B”,它们是很久以前创建的。
target_node = nuke.thisKnob()
taget_node.addKnob(extra_knob)
我怎样才能在选项卡'A'而不是'B'中创建extra_knob?
当我在文本编辑器中打开 .nk 文件时,旋钮似乎有一个索引,但我在文档中找不到任何类似的东西
不确定这是否仍然相关,但提供答案以希望帮助遇到此问题的其他人。
控制用户旋钮的顺序是真正保证它们正确显示在面板上的唯一方法。将按照您在文件node.allKnobs()
中指定的顺序返回节点的旋钮。.nk
您可以使用“用户”选项卡旋钮作为用户旋钮开始位置的分隔符(您不应尝试编辑非用户旋钮的顺序)。您想要添加到选项卡的任何节点只需要在该选项卡旋钮之后添加。
这是一个使用现有节点的示例,将旋钮重新排序为选项卡:
node = nuke.selectedNode()
# Find out where the "User Tab" is, this is the start of user knobs
user_knob_index = 35
user_knob = node.knob(user_knob_index)
user_knobs = node.allKnobs()[(user_knob_index + 1):]
# Clear out all the user knobs
for knob in user_knobs:
node.removeKnob(knob)
color_knobs = [i for i in user_knobs if 'color' in i.name()]
di_knobs = [i for i in user_knobs if 'di' in i.name()]
# Create new tab knobs
color_tab = nuke.Tab_Knob('color')
di_tab = nuke.Tab_Knob('di')
# Add the color tab and color knobs
node.addKnob(color_tab)
for knob in color_knobs:
node.addKnob(knob)
# Add the di tab and di knobs
node.addKnob(di_tab)
for knob in di_knobs:
node.addKnob(knob)