2016-10-31 1 views
0

노브를 노드에 추가하고 싶지만 특정 탭 안에 항상 표시되는지 확인하고 싶습니다.패널 안에 노브가 추가되었는지 확인하는 방법은 무엇입니까?

대상 노드에 오래 전에 생성 된 두 개의 탭 'A'와 'B'가있는 것처럼 보자.

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

어떻게 'extra_knob'을 'B'대신 'A'탭에 만들 수 있습니까? 내가 텍스트 편집기에서 .nk 파일을 열 때

은 노브는 인덱스를 갖고있는 것 같다,하지만 난이 여전히 관련이있는 경우

답변

3

확실하지 문서에 종류의 아무것도 찾을 수 있지만를 제공 할 수 희망에 따라 다른 사람들을 도울 수있는 대답을하십시오.

사용자 손잡이의 순서를 제어하는 ​​것이 실제로 패널에 올바르게 표시되도록하는 유일한 방법입니다. 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) 
:

여기 탭으로 노브를 기존 노드 복용 재정렬 예입니다