So, after trying many things, I learned enough to make it work. For anyone 
who’s interested, here’s my example code for making a simple UI that switches 
tabs, based on a selector… Hopefully, the email mangling won’t wreak havoc on 
it.

—————————————————————————————

import nuke
import nukescripts

class TabsDialog(nukescripts.PythonPanel):

    def __init__(self):
        super(TabsDialog, self ).__init__("Tab Examples")

        # Choice section knobs...
        self.Choice_BeginGroup = nuke.Text_Knob('choice_BeginGroup', 
'NODE_FILTERING:')
        self.nodesChoice = nuke.Enumeration_Knob('nodes', 'Nodes: ', ['All', 
'Selected'])
        self.nodesChoice.setTooltip('Choose to perform action on All nodes or 
only the Selected ones.')        
        self.ClassChoice = nuke.Enumeration_Knob('class', 'Class: ', ['Write', 
'Read'])
        self.ClassChoice.setTooltip('Choose to perform the action on one Class 
of node.')
        self.divider = nuke.Text_Knob('')

        # WRITE Tab knobs...
        self.Write_BeginTabGroup = nuke.Tab_Knob('', 'Write Node Controls')
        self.Write_insideKnob = nuke.Int_Knob("insideGroup")
        self.Write_inside2Knob = nuke.Int_Knob("also_inside")
        # Collector of all the WRITE knobs we make...
        self.Write_Collection = [self.Write_BeginTabGroup, 
self.Write_insideKnob, self.Write_inside2Knob]

        # READ Tab knobs...
        self.Read_BeginTabGroup = nuke.Tab_Knob('', 'Read Node Controls')
        self.Read_insideKnob = nuke.Int_Knob("insideGroup")
        self.Read_inside2Knob = nuke.Int_Knob("also_inside")
        # Collector of all the READ knobs we make...
        self.Read_Collection = [self.Read_BeginTabGroup, self.Read_insideKnob, 
self.Read_inside2Knob]         
        # Start these knobs as invisible. Only the default ClassChoice 
selection starts as visible...
        for k in self.Read_Collection:
            k.setFlag(nuke.INVISIBLE)

        # Add Choice section knobs...
        self.addKnob(self.Choice_BeginGroup)
        self.addKnob(self.nodesChoice)
        self.addKnob(self.ClassChoice)
        self.addKnob(self.divider)

        # Add WRITE section knobs...
        self.addKnob(self.Write_BeginTabGroup)
        self.Write_BeginTabGroup.setFlag(nuke.STARTLINE)
        self.addKnob(self.Write_insideKnob)
        self.addKnob(self.Write_inside2Knob)

        # Add READ section knobs...
        self.addKnob(self.Read_BeginTabGroup)
        self.Read_BeginTabGroup.setFlag(nuke.STARTLINE)
        self.addKnob(self.Read_insideKnob)
        self.addKnob(self.Read_inside2Knob)


        # Dictionary of knob collections...
        self.All_Collections_Dict = {"self.Write_Collection": 
self.Write_Collection, "self.Read_Collection": self.Read_Collection}


    def knobChanged(self, knob):
        # Show and hide knodes based on Class of node selected...
        if knob == self.ClassChoice: 
            choice = self.ClassChoice.value()
            for collection_name in self.All_Collections_Dict.keys():
                if choice in collection_name:
                    collection = self.All_Collections_Dict.get(collection_name)
                    for k in collection:
                        k.clearFlag(nuke.INVISIBLE)
                elif choice not in collection_name:
                    collection = self.All_Collections_Dict.get(collection_name)
                    for k in collection:
                        k.setFlag(nuke.INVISIBLE)
        elif knob == self.nodesChoice:
            pass

TabsDialog().showModalDialog()

—————————————————————————————


Rich

Rich Bobo
Senior VFX Compositor
Armstrong White
Email:  rich.b...@armstrong-white.com
http://armstrong-white.com/

Email:  richb...@mac.com
Mobile:  (248) 840-2665
Web:  http://richbobo.com/

"Man does not live by a turkey in every oven or a color TV set in every home. 
Man lives by faith and hope and love, by the star on the horizon, by the 
trumpet that will not call retreat."
- E. Merrill Root





On Oct 6, 2014, at 5:10 PM, Richard Bobo <richb...@mac.com> wrote:

> Hi,
> 
> Bashing my head against opening and closing tab groups…
> Once I’ve created a Tab_Knob with nuke.TABBEGINGROUP and the corresponding 
> TABENDGROUP, how do I open and close the tabs via Python? I have tried a 
> hundred different ways and I can’t figure it out! There is a nuke.tabClose() 
> method — but, no corresponding tabOpen() — and I can’t make it do anything. 
> I’ve googled for hours and have given up looking (almost). Any help??
> 
> Thanks,
> Rich
>   
> 
> Rich Bobo
> Senior VFX Compositor
> Armstrong White
> Email:  rich.b...@armstrong-white.com
> http://armstrong-white.com/
> 
> Email:  richb...@mac.com
> Mobile:  (248) 840-2665
> Web:  http://richbobo.com/
> 
> "The nearest way to glory -- a shortcut, as it were -- is to strive to be 
> what you wish to be thought to be."
> - Socrates, quoted in Cicero, 44 BC.
> 
> 
> 
> 
> 
> 
> 
> 
> 
> _______________________________________________
> 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