在NUKE python中创建包含文件夹的下拉菜单

时间:2013-07-10 19:06:15

标签: python nuke

我正在尝试在NUKE中创建一个下拉列表以列出路径中的所有文件夹。到目前为止,这是我的代码:

p = nuke.Panel('my custom panel')
p.addEnumerationPulldown('my choices', (os.walk('E:').next()[1]))
ret = p.show()

我遇到的一个问题是,如果我有一个带空格的文件夹名称,它会显示为不同的选择。
例如,文件夹System Test显示为两个选项SystemTest

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

nuke.Panel枚举下拉菜单无法处理值中的字符串。您必须用其他字符替换任何空格,然后创建下拉列表。

p = nuke.Panel('my custom panel')
paths = [i.replace(" ", "-_-") for i in os.walk('E:').next()[1]]
p.addEnumerationPulldown('my choices', paths)
ret = p.show()

最终,如果它可以满足您的需求,那么使用PythonPanel可能会更好。它可以处理附加到面板的Enumeration_Knob中的空格。

import os
import nuke
import nukescripts

p = nukescripts.PythonPanel("foo")
k = nuke.Enumeration_Knob("bar", 'bar', os.walk('E:').next()[1])
p.addKnob(k) 
p.show()