我试图在nuke中获取自定义下拉选择旋钮的getvalue(),当我打印时返回整数而不是旋钮值
ks = nuke.toNode('nodename').knob('pulldownchoice').getValue()
print ks
我希望输出为字符串,但输出为1.0
答案 0 :(得分:0)
答案很简单,只需使用.value()而不是.getValue(),然后返回字符串而不是整数。
感谢tk421storm
答案 1 :(得分:0)
尽管在某些情况下,方法getValue()
和value()
可以互换,但是对于字符串,必须使用value()
方法,对于数字必须使用getValue()
方法。
根据您的情况,可以使用三种方法来访问
Enumeration_Knob
值:
getValue()
带给您一个数字(枚举所选对的索引)
value()
带给您一个字符串(枚举所选对的名称)
values()
为您带来所有字符串的列表(所有名称)
您可以使用
getValue()
方法来获取数字属性,例如scale
或rotate
:
nuke.toNode('Transform1').knob('rotate').getValue()
nuke.toNode('Transform1')['rotate'].getValue()
nuke.selectedNode()['rotate'].getValue()
要打印所有旋钮的名称和所选节点的相应值,请使用以下方法:
print(nuke.selectedNode())
对于下拉菜单,使用了3种主要方法-
getValue()
,value()
和values()
:
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
value()
v = nuke.toNode('Transform1')['filter'].value()
print(v)
# value() method brings a name of a chosen filter
# Result: Notch
values()
w = nuke.toNode('Merge1')['bbox'].values()
print(w)
# values() method brings a list of all strings stored in enum
# Result: ['union', 'intersection', 'A', 'B']
希望这会有所帮助。