Очистка метки узла StickyNote - PullRequest
1 голос
/ 04 октября 2019

Общая идея, которая у меня есть, заключается в том, чтобы в конечном итоге добавить к моим узлам 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 либо на ничего в поле, либо на значение 1, которое я использовал через .setText, чтобы заставить его напечатать что-либо в поле или изменить поле. Попытка изменения .setText была предпринята на уже созданном стикере для изменения значения. При запуске .setText ("1) значение возвращается с использованием .getValue как имеющее значение 1 в поле. Но фактический узел не изменился вообще. И я застреваю в простом изменении этого значения меткипрежде чем я продвинусь дальше, узнав, как создать пользовательскую кнопку.

1 Ответ

0 голосов
/ 07 октября 2019

Это работает только для обоих вариантов - для строкового значения "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")

Протестировано в NukeX 11v3.5 NC на MacOS Mojave 10.14.6.

...