SnippedPaws
SnippedPaws

Reputation: 73

Nuke ChannelMask_Knob required argument

I am trying to figure out what the required string argument for the nuke.ChannelMask_Knob() function corresponds to. On some other knob constructors the first argument seems to be the name/label, but that does not seem to be the case for the ChannelMask_Knob...

I have looked at the Nuke Python API, but I am unsure how to follow it back to the appropriate function definition to answer my question. My line of thinking is that this has to do with the init function which is overridden by the ChannelMask_Knob class, but the parameter list according to the API is just "..." which I believe means it has to do with a builtin function. Since I can't see the body of the init function, I have no idea what that argument is used for, thus my problem...

Here is an example of my issue:

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

This works just fine, but I would like to know what the "required_argument" is used for since it is apparently not the name or label for the knob.

Upvotes: 1

Views: 357

Answers (1)

Andy Jazz
Andy Jazz

Reputation: 58563

You must intentionally leave a blank space for parameter in ChannelMask_Knob('') method. It doesn't work. But for assigning a name and a label you need to use .setName('name') and .setLabel('label') methods respectively. It works fine.

Here is a 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)

For selection of channel in this dropdown menu it's better to use the following method:

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

Upvotes: 1

Related Questions