使用getValue()

时间:2019-05-21 23:12:03

标签: python nuke

我试图在nuke中获取自定义下拉选择旋钮的getvalue(),当我打印时返回整数而不是旋钮值

ks = nuke.toNode('nodename').knob('pulldownchoice').getValue()
print ks

我希望输出为字符串,但输出为1.0

2 个答案:

答案 0 :(得分:0)

答案很简单,只需使用.value()而不是.getValue(),然后返回字符串而不是整数。

感谢tk421storm

答案 1 :(得分:0)

尽管在某些情况下,方法getValue()value()可以互换,但是对于字符串,必须使用value()方法,对于数字必须使用getValue()方法。

  

根据您的情况,可以使用三种方法来访问Enumeration_Knob值:

  • getValue()带给您一个数字(枚举所选对的索引)

  • value()带给您一个字符串(枚举所选对的名称)

  • values()为您带来所有字符串的列表(所有名称)

  

您可以使用getValue()方法来获取数字属性,例如scalerotate

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']

希望这会有所帮助。