2017-10-13 5 views
1

Ich versuche herauszufinden, was das erforderliche String-Argument für die Funktion nuke.ChannelMask_Knob() entspricht. Bei einigen anderen Knob-Konstruktoren scheint das erste Argument der Name/label zu sein, aber das scheint nicht der Fall für die ChannelMask_Knob ... zu sein. Ich habe mir die Nuke Python-API angeschaut, aber ich bin mir nicht sicher, wie ich das machen soll Folge ihm zurück zur entsprechenden Funktionsdefinition, um meine Frage zu beantworten. Mein Ansatz ist, dass dies mit der Funktion init zu tun hat, die von der Klasse ChannelMask_Knob überschrieben wird, aber die Parameterliste gemäß der API ist nur "...", was meiner Meinung nach bedeutet, dass es sich um ein eingebautes Programm handelt Funktion. Da ich nicht den Körper der init Funktion sehen kann, habe ich keine Ahnung, was das Argument für verwendet wird, also mein Problem ...Nuke ChannelMask_Knob erforderliches Argument

Hier ist ein Beispiel für meine Frage:

test_knob = nuke.ChannelMask_Knob("required_argument") 
node.addKnob(test_knob) 

Das funktioniert ganz gut, aber ich würde gerne wissen, wofür das "required_argument" verwendet wird, da es anscheinend nicht der Name oder das Label für den Knopf ist.

Antwort

0

Sie müssen absichtlich eine Leerstelle für Parameter in ChannelMask_Knob('') Methode lassen. Es funktioniert nicht. Für die Zuweisung eines name und eines label müssen Sie jedoch die Methoden .setName('name') und .setLabel('label') verwenden. Es funktioniert gut. Hier

ist ein Code:

import nuke 

noop = nuke.nodes.NoOp() 
### maskKnob = nuke.ChannelMask_Knob('name', 'label', False) 
maskKnob = nuke.ChannelMask_Knob('') 
maskKnob.setName('name') 
maskKnob.setLabel('label') 
noop.addKnob(maskKnob) 

Für die Auswahl des Kanals in diesem Dropdown-Menü ist es besser, die folgende Methode zu verwenden:

nuke.selectedNode().knob('name').setValue('alpha') 
nuke.selectedNode().knob('name').setValue('disparity') 
Verwandte Themen