Yep, I ended up using if/elif, too. I posted my sample code in a reply to Ivan,
but here it is again, since I seem to have started more than one email thread
on this… (blush)
def knobChanged(self, knob):
if nuke.thisKnob().name() == 'prefix':
self.do_part_filtering()
self.viewname_filter_mashup()
elif nuke.thisKnob().name() == 'contains':
self.do_part_filtering()
self.viewname_filter_mashup()
elif nuke.thisKnob().name() == 'clear_filters':
self.clear_views_filters()
self.viewname_filter_mashup()
elif nuke.thisKnob().name() == 'config_images':
self.use_part_selection_as_filter()
self.viewname_filter_mashup()
elif nuke.thisKnob().name() == 'exterior_colors':
self.viewname_filter_mashup()
elif nuke.thisKnob().name() == 'interior_colors':
self.viewname_filter_mashup()
elif nuke.thisKnob().name() == 'finishes_colors':
self.viewname_filter_mashup()
elif nuke.thisKnob().name() == 'pick_a_view':
self.active_viewer.setView(self.view_selector_knob.value())
Rich
On May 8, 2013, at 2:40 AM, Ean Carr <[email protected]> wrote:
> And since more than one knob will not be changed at a time, I usually use
> if/elif/elif/elif structure (since there's no switch in python), ensuring
> when the right knob is found, the flow stops. Not sure how much difference
> that makes in practice, but, hey, why not.
>
>
> On Tue, May 7, 2013 at 6:18 PM, Richard Bobo <[email protected]> wrote:
> OK, my question hasn't shown up in the newsgroups, yet, but I found the
> answer to my question...
>
> I just needed to changed all the if statements (e.g. -- "if a_knob:" ) to "if
> nuke.thisKnob() == a_knob:"
>
> Sorry for the bandwidth!
>
> 8^)
>
>
> Rich
>
>
> Begin forwarded message:
>
>> From: Richard Bobo <[email protected]>
>> Subject: knobChanged question...
>> Date: May 7, 2013 12:58:05 PM EDT
>> To: Nuke-Users Mailing List List Postings
>> <[email protected]>, Nuke Python discussion
>> <[email protected]>
>>
>> Hi,
>>
>> This is probably a very elementary question, but I can't quite wrap my head
>> around it…
>>
>> I have a Python_Panel with four knobs on it: three Enumeration_Pulldown
>> knobs and a PyScript_Knob. I have added them all to a knobChanged method. I
>> am using something like this for my checking:
>>
>> def knobChanged(self, knob):
>> if a_knob:
>> set_something = a_knob.value()
>> if b_knob:
>> set_something_else = b_knob.value()
>> if c_knob:
>> set_another_thing = c_knob.value()
>> if d_knob:
>> run_a_method()
>>
>> You will probably notice that each time a knob is changed, all of the
>> statements are executed, including the run_a_function(). I'm sure this is
>> from "Programming 101", but how do I isolate the knob changed events, so
>> that *only* the one that has been changed is executed…?
>>
>> Thanks for any help!
>>
>>
>> Rich
>>
>> Rich Bobo
>> Senior VFX Compositor
>> Armstrong-White
>> http://armstrong-white.com/
>>
>> Email: [email protected]
>> Mobile: (248) 840-2665
>> Web: http://richbobo.com/
>>
>> "We are fallible. We certainly haven't attained perfection. But we can
>> strive for it, and the virtue is in the striving."
>> - Carlos P. Romulo
>>
>>
>>
>>
>>
>>
>>
>
>
> _______________________________________________
> Nuke-python mailing list
> [email protected], http://forums.thefoundry.co.uk/
> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
>
>
> _______________________________________________
> Nuke-python mailing list
> [email protected], http://forums.thefoundry.co.uk/
> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
_______________________________________________
Nuke-python mailing list
[email protected], http://forums.thefoundry.co.uk/
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python