首页 > 解决方案 > StickyNote 节点标签清除

问题描述

我的总体想法是最终在我的stickyNote节点上添加一个按钮,当我创建它们时,单击该按钮将运行一个脚本,该脚本会给我一个弹出窗口,允许我更改值。第二个想法是我的想法是,它只是在创建的默认值中取值并将其设为空,而不是在创建“在此处键入注释”时出现默认值。

我试图在我的脑海中将值设置为(“”),但该节点仍然使用“在此处输入注释”创建


def setColor(R,G,B):
    return int("%02x%02x%02x%02x" % (R,G,B,1),16)

def StickyNoteOverride():
    nuke.thisNode()["tile_color"].setValue(setColor(R=(255*.298),G=(255*.298),B=(255*.298)))
    nuke.thisNode()["note_font_size"].setValue(60)
    nuke.thisNode()["note_font_color"].setValue(setColor(R=(255),G=(255*.624),B=(255*.0)))
    nuke.thisNode()["note_font"].setValue("Deja Vu Sans Bold")
    nuke.thisNode()["label"].setValue("")
        ####nuke.thisNode()['label'].setText("")
        ####nuke.thisNode()['label'].setText("1")

nuke.addOnUserCreate(StickyNoteOverride, nodeClass = "StickyNote")

到目前为止,我预期的代码也可以完成我想要的一切,除了将 usercreate 值的默认值更改为字段中的任何内容,或者更改为我通过 .setText 使用的值 1 以使其打印字段中的任何内容或更改字段。.setText 更改已尝试在已创建的便笺上更改值。运行 .setText("1) 时,该值与 .getValue 用法一起返回,因为该字段中的值为 1。但实际节点根本没有改变。而且我只需要更改标签的这个值在我进一步学习如何让它创建一个用户定义的按钮之前。

标签: pythonnuke

解决方案


它仅适用于两种变体 - 字符串值"Lorem Ipsum Dolor..."和空字符串""

def stickyNoteOverridden():
    colour = int('%02x%02x%02x%02x' % (0,128,64,1),16)   # Greenish
    nuke.thisNode()["tile_color"].setValue(colour)
    nuke.thisNode()["note_font_size"].setValue(60)
    nuke.thisNode()["note_font_color"].setValue(100)
    nuke.thisNode()["note_font"].setValue("Deja Vu Sans Bold")

    # nuke.thisNode()["label"].setValue("Lorem Ipsum Dolor...")
    # nuke.thisNode()["label"].setValue("")

nuke.addOnUserCreate(stickyNoteOverridden, nodeClass = "StickyNote")
nuke.createNode("StickyNote")

这里的一个关键时刻是使用.createNode()命令:

nuke.createNode("StickyNote")

在 macOS Mojave 10.14.6 上的 NukeX 11v3.5 NC 中对其进行了测试。


推荐阅读