如何确保在面板内添加旋钮?

时间:2016-10-31 17:20:23

标签: python nuke

我想在节点上添加一个旋钮,但我想确保它始终显示在特定选项卡中。

让我们假设目标节点有两个标签,'A'和'B'很久以前就已经创建了。

target_node = nuke.thisKnob()
taget_node.addKnob(extra_knob)

如何在标签'A'而不是'B'中创建extra_knob?

当我在文本编辑器中打开.nk文件时,旋钮似乎有一个索引,但我在文档中找不到任何类型

1 个答案:

答案 0 :(得分:3)

不确定这是否仍然相关,但提供答案以帮助遇到此问题的其他人。

控制用户旋钮的顺序是确保它们在面板上正确显示的唯一方法。 .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) 文件中指定的顺序返回节点的旋钮。您可以使用"用户" tab旋钮作为用户旋钮开始位置的分隔符(您不应该尝试编辑非用户旋钮的顺序)。您需要添加到选项卡的任何节点都需要在该选项卡旋钮之后添加。

这是一个采用现有节点的示例,将旋钮重新排序到标签中:

d[n] = [d[n], newValue]