Thank you Frank,

I was starting from a function and putting it into a class and that's where I 
got stuck. I need to keep on reading about this. 

Thanks for the feedback!
--
Bruno-Pierre Jobin

> On Aug 12, 2016, at 11:25 PM, Frank Rueter|OHUfx <fr...@ohufx.com> wrote:
> 
> There are a few things wrong with your code snippet. Below is a working 
> version.
> The main two things that seemed off are:
> your custom panel class correctly inherits from nukescripts.PythonPanel but 
> then creates a new panel inside it's constructor again which is odd.
> you never called the super class's constructor which is responsible for all 
> sorts of things, including hooking up callbacks internally. If you don't do 
> that, you effectively overwrite the way the python panel is meant to be 
> initiated and you are definitely in for unexpected results
> Cheers,
> frank
> 
> class ShapePanel(nukescripts.PythonPanel):
> def __init__(self, title="ELEMENT"):
> super(ShapePanel, self).__init__(title) # call 
> nukescripts.PythonPanel.__init__() to make sure your derived class is created 
> properly
> IDs = ['12345','56789','09876']
> self.d = nuke.Enumeration_Knob('Element', 'Element : ', IDs)
> self.addKnob(self.d)
> self.myID = self.d.value()
> def knobChanged(self, knob):
> if knob is self.d:
> print knob.name()
> p = ShapePanel()
> p.showModalDialog()
> 
> 
>> On 13/08/16 2:34 AM, Bruno-Pierre Jobin wrote:
>> Can anyone tell me why the knobChanged function won't print the knob name 
>> when it's changed? 
>> 
>> I came across this thread that basically asks the same question but I can't 
>> wrap my head around it. 
>> https://www.mail-archive.com/nuke-python@support.thefoundry.co.uk/msg03270.html
>> 
>> 
>> class ShapePanel(nukescripts.PythonPanel):
>> def __init__(self):
>> IDs = ['12345','56789','09876']
>> self.p = nukescripts.PythonPanel("ELEMENT")
>> self.d = nuke.Enumeration_Knob('Element', 'Element : ', IDs)
>> self.p.addKnob(self.d)
>> self.ret = self.p.showModalDialog()
>> self.myID = self.d.value()
>> def knobChanged(self, knob):
>> if knob is self.d:
>> print knob['name']
>> ShapePanel()
>> Thank you
>>  
>> --
>> Bruno-Pierre Jobin
>> 
>> 
>> _______________________________________________
>> Nuke-python mailing list
>> Nuke-python@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/
>> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
> 
> _______________________________________________
> Nuke-python mailing list
> Nuke-python@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/
> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
_______________________________________________
Nuke-python mailing list
Nuke-python@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python

Reply via email to