首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nuke获取if语句的旋钮值

Nuke获取if语句的旋钮值
EN

Stack Overflow用户
提问于 2015-07-06 19:48:27
回答 1查看 3.6K关注 0票数 1

我是Python的新手,我需要一些帮助。这也是我在这个网站上的第一篇文章。我试图改变颜色空间旋钮在阅读节点,我已经标记为“板块”的价值。我想稍后使用这个值。到目前为止,我的代码如下:

代码语言:javascript
复制
def LabelPlate():
    n = nuke.thisNode()
    if n != None:
        label = n['label'].value()
        n['label'].setValue('Plate')


def LabelLook():
    name= "Plate"
    for node in nuke.allNodes():
        if name == node.knob("label").value():
            return True

def LabelLookTwo():
    name= "Plate"
    for node in nuke.allNodes():
        if name == node.knob("label").value():
            return node.knob("name").value()


def PlateColorspaceSet():
    n = LabelLookTwo()
    if nuke.toNode("n")["colorspace"].value() == "default (sRGB)":
        nuke.toNode("n")["colorspace"].setValue("sRGB")

def LabelQuestion():
    if LabelLook() != True:
        if nuke.ask('Is this Read your main Plate?'):
            LabelPlate()
            PlateColorspaceSet()


nuke.addOnUserCreate(LabelQuestion, nodeClass = 'Read')

因此,事件的顺序:

  1. 引入读取节点
  2. 询问读节点是否是您的主板。 如果是,请将节点标记为“板块”,继续执行步骤3。 如果没有,则引入未标记的读节点。
  3. 将标记为"Plate“的节点中的颜色空间从默认值更改为实际值。

到目前为止,我可以完成前两步的工作。但在第三步,我得到了

"'NoneType‘对象没有属性'getitem'“

知道为什么吗?是否有更好的方法来获得颜色空间的值?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-07 13:35:06

我解决了问题。

nuke.addOnUserCreate是在创建read节点时调用函数的地方。问题是,它在一切都存在之前就运行了脚本。所以,并不是所有东西都能工作,因为Nuke中还没有所有的东西,所以像我的变量n= LabelLookTwo()一样,返回为None。

相反,使用addOnCreate在节点之后运行脚本,并且已经设置和创建了它的默认值。因此,使用此方法,脚本的其余部分将完全按照最初编写的方式运行。

在那里我找到了答案

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31254401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档