当我试图添加一个旋钮时,我得到“旋钮已经连接到一个节点”
当我试图从菜单.py按钮。。如果我从脚本编辑器运行脚本,我不会得到错误。。为什么?在
for i in nuke.allNodes():
if not i.knob("tempMb"):
if sum0 == 0:
nuke.message("first tmp knob created")
i.addKnob(t)
elif sum0 != 0:
nuke.message("second tmp knob created")
else:
nuke.message("no nob created")
即使我也会检查是否有一个名为tempMb的旋钮。。它仍然执行它,好像没有,当有。。 编辑:“t”早先被定义为Int U旋钮。。。在
谢谢!在
nuke.exists("Name of Knob")
将检查旋钮是否存在。尝试在if语句中使用它。在有关Nuke forum的详细信息。在
另请参见Documentation on nuke.exists
尝试以下解决方案:
首先,我将把
elif
改为else
,因为你的if条件已经在测试elif条件,我看不出在这段代码中这是如何变化的。在第二,我假设
i.knob(string)
没有检查该名称的旋钮是否存在,或者您的代码会表现得更像您预期的那样。所以当我读到the docs时,似乎会发生一些事情:nuke.allNodes(nuke.Knob)
。在if i.name != "tempMb":
或者可能是{尽管如此,我认为这里可能有一个逻辑错误。如果你有两个节点(如果你做了以上的改变,假设它们都是旋钮),当你循环所有节点时,第一个节点是
tempMb
,那么当你检查第二个节点时,它就不是这样了,你将尝试添加t
,我假设它也被命名为tempMb
。所以这就是为什么在你看来消极的情况总是发生。在您需要通过以下两种方式之一进行重组:
tempMb
时,将其设置为true;您也可以在出现这种情况时立即退出循环。循环之后,检查布尔值,看看添加t
是否安全。在s
的“项”。在可能移除循环并写下以下内容:
^{pr2}$相关问题 更多 >
编程相关推荐