I need to amend my email and correct some erroneous information… —— First of all, setting the knob value to a string, like ‘foobar’, *does* work! ...Not sure what I was doing that made the test not work before, but it does now…. ~(8^P
—— Secondly, what does *not* work is setting the knob value to the result of a function. What I am actually trying to do is set the knob’s initial value to nuke.activeViewer().view(). The result is a string, but when recalling the Nuke script with a registered panel - the panel does not show. It does not matter if I set the value beforehand, either. I.e., if I do something like this: self.current_view = nuke.activeViewer().view() …then… self.partStartsWith_knob.setValue(self.current_view) —— That will work fine when initially creating the tabbed panel - but fails to show anything when the script is saved and reloaded. —— So, here’s a better test that shows the problem: import nuke import nukescripts class testpanel( nukescripts.PythonPanel ): def __init__(self): # Get the view name and assign it... self.current_view = nuke.activeViewer().view() nukescripts.PythonPanel.__init__(self, 'View Selector', 'com.richbobo.testpanel') self.partStartsWith_knob = nuke.String_Knob('startswith', 'View Name - Starts With :') self.addKnob(self.partStartsWith_knob) # Set the initial view name value to the knob... self.partStartsWith_knob.setValue(self.current_view) —— Sorry for the confusion! Rich On Nov 7, 2013, at 10:58 AM, Richard Bobo <richb...@mac.com> wrote: > OK, here's an interesting problem... Well, it's "interesting" in the sense > that I can't figure out how to solve it!! (8^\ > > ---- When I add a custom PythonPanel to the Pane menu, create it as a tab, > save the Nuke script and recall it - the panel does not appear! > > ---- The thing that is causing it to *not* appear is assigning an initial > value to the knob. If I don't assign an initial value, the panel appears in > the tab, as expected. This happens with more than one type of knob, by the > way. It seems to be a general problem... > > ---- For debugging purposes, I am making a simple PythonPanel and adding a > String_Knob to it. If I comment out the last .setValue line, the tabbed panel > saves and restores with the Nuke script without a problem. If I assign a > default value, it doesn't. > > ---- Here's the test class: > import nuke > import nukescripts > class testpanel( nukescripts.PythonPanel ): > def __init__(self): > nukescripts.PythonPanel.__init__(self, 'View Selector', > 'com.richbobo.testpanel') > self.partStartsWith_knob = nuke.String_Knob('startswith', 'View Name > - Starts With :') > self.addKnob(self.partStartsWith_knob) > self.partStartsWith_knob.setValue('foobar') > > ---- Here's what I have in my menu.py: > import test_panel > def addtestpanel(): > global testpanel > testpanel = test_panel.testpanel() > testpanel.addToPane() > return testpanel > nuke.menu('Pane').addCommand( 'testpanel', addtestpanel ) > nukescripts.registerPanel( 'com.richbobo.testpanel', addtestpanel ) > > --- Note that there are no errors reported when the panel does not appear. > > It seems that assigning initial values to the knobs of a registered panels > somehow interrupts the mechanism that causes the panel to show. How do I make > sure to insert initial values in the knobs - without causing the registered > PythonPanel to not show?!? > > > Thanks for any help, > Rich > > Rich Bobo > Senior VFX Compositor > Email: richb...@mac.com > Mobile: 248.840.2665 > Web: http://richbobo.com
_______________________________________________ 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