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

2024-06-01 01:38:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我想添加一个旋钮到一个节点,但我要确保它总是显示在一个特定的选项卡内。在

假设目标节点有两个选项卡,“A”和“B”,它们是很久以前创建的。在

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

我怎样才能在标签“A”而不是“B”中创建额外的“U”旋钮?在

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


Tags: nodetarget目标节点标签extra选项卡文本编辑
1条回答
网友
1楼 · 发布于 2024-06-01 01:38:48

不确定这是否仍然相关,但提供一个答案,希望能帮助其他遇到这种情况的人。在

控制用户旋钮的顺序是真正保证它们在面板上正确显示的唯一方法。node.allKnobs()将按照在{}文件中指定的顺序返回a节点的旋钮。您可以使用“User”选项卡旋钮作为用户旋钮开始位置的分隔符(不应尝试编辑非用户旋钮的顺序)。任何要添加到选项卡的节点都需要添加到选项卡旋钮之后。在

下面是一个以现有节点为例,将旋钮重新排序为选项卡:

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)

相关问题 更多 >