Nuke 下拉选择旋钮 returns 使用 getValue() 时使用整数而不是字符串
Nuke pulldown Choice knob returns integer instead of string when used getValue()
我正在尝试在 nuke 中获取自定义下拉选择旋钮的值(),当我打印它时 returns 整数而不是旋钮值,它是一个字符串
ks = nuke.toNode('nodename').knob('pulldownchoice').getValue()
print ks
我希望输出是字符串,但我得到的输出是 1.0
答案很简单,只需使用 .value() 而不是 .getValue(),然后 returns 字符串而不是整数。
感谢 tk421storm
虽然在某些情况下 getValue()
和 value()
两种方法可以互换,但您必须对字符串使用 value()
方法,对数字使用 getValue()
方法。
In your case there are three methods available for accessing Enumeration_Knob
values and one method for setting new ones:
getValue()
给你带来一个数字(枚举选择对的索引)
value()
给你带来一个字符串(枚举选择对的名称)
values()
为您带来所有字符串的列表(所有名称)
setValue()
为旋钮设置新值(您可以在此处使用索引或名称)
You can use getValue()
method for getting numeric properties like scale
or rotate
:
nuke.toNode('Transform1').knob('rotate').getValue()
nuke.toNode('Transform1')['rotate'].getValue()
nuke.selectedNode()['rotate'].getValue()
要打印所选节点的所有旋钮名称和相应值,请使用此方法:
print(nuke.selectedNode())
For pulldown menus 3 main methods are used – getValue()
, value()
and values()
as well as setValue()
method:
getValue()
g = nuke.toNode('Transform1')['filter'].getValue()
print(g)
# getValue() method brings properties' index (because it's enumerator)
# If your filter="Notch" getValue() brings 7.0 – i.e. eight element
# Result: 7.0
值()
v = nuke.toNode('Transform1')['filter'].value()
print(v)
# value() method brings a name of a chosen filter
# Result: Notch
值()
vv = nuke.toNode('Merge1')['bbox'].values()
print(vv)
# values() method brings a list of all strings stored in enum
# Result: ['union', 'intersection', 'A', 'B']
setValue()
s1 = nuke.toNode('Merge2')['operation'].setValue(0)
# setValue() method sets a new existing value in enum with index 0
# Result: atop
s2 = nuke.toNode('Merge3')['operation'].setValue("xor")
# setValue() method sets a new existing value in enum with name "xor"
# Result: xor
我正在尝试在 nuke 中获取自定义下拉选择旋钮的值(),当我打印它时 returns 整数而不是旋钮值,它是一个字符串
ks = nuke.toNode('nodename').knob('pulldownchoice').getValue()
print ks
我希望输出是字符串,但我得到的输出是 1.0
答案很简单,只需使用 .value() 而不是 .getValue(),然后 returns 字符串而不是整数。
感谢 tk421storm
虽然在某些情况下 getValue()
和 value()
两种方法可以互换,但您必须对字符串使用 value()
方法,对数字使用 getValue()
方法。
In your case there are three methods available for accessing
Enumeration_Knob
values and one method for setting new ones:
getValue()
给你带来一个数字(枚举选择对的索引)value()
给你带来一个字符串(枚举选择对的名称)values()
为您带来所有字符串的列表(所有名称)setValue()
为旋钮设置新值(您可以在此处使用索引或名称)
You can use
getValue()
method for getting numeric properties likescale
orrotate
:
nuke.toNode('Transform1').knob('rotate').getValue()
nuke.toNode('Transform1')['rotate'].getValue()
nuke.selectedNode()['rotate'].getValue()
要打印所选节点的所有旋钮名称和相应值,请使用此方法:
print(nuke.selectedNode())
For pulldown menus 3 main methods are used –
getValue()
,value()
andvalues()
as well assetValue()
method:
getValue()
g = nuke.toNode('Transform1')['filter'].getValue()
print(g)
# getValue() method brings properties' index (because it's enumerator)
# If your filter="Notch" getValue() brings 7.0 – i.e. eight element
# Result: 7.0
值()
v = nuke.toNode('Transform1')['filter'].value()
print(v)
# value() method brings a name of a chosen filter
# Result: Notch
值()
vv = nuke.toNode('Merge1')['bbox'].values()
print(vv)
# values() method brings a list of all strings stored in enum
# Result: ['union', 'intersection', 'A', 'B']
setValue()
s1 = nuke.toNode('Merge2')['operation'].setValue(0)
# setValue() method sets a new existing value in enum with index 0
# Result: atop
s2 = nuke.toNode('Merge3')['operation'].setValue("xor")
# setValue() method sets a new existing value in enum with name "xor"
# Result: xor