Hi everyone,

I am definitely in over my head here.  The original goal was to dynamically 
create a window of buttons that is createdh from the quick selects menu. 
Each button would select the given selection set and key all.  I have 
borrowed some code from a guy who is smarter than I that has a lot of cool 
button options.  I have included a dummy scene that has 3 pSperes and 
should have each sphere in a quick select set named ballSet1,ballSet2 and 
ballSet3.  I would love any suggestions.

Thanks.

Don

Original code. THANKS RYAN!
http://www.rtrowbridge.com/blog/2010/02/maya-python-ui-example/

Here is my attempts to loop through list and dynamically create buttons. I 
want to dynamically create the code that goes along with the buttons as well
[/code]

import maya.cmds as cmds
from functools import partial

def myfunc(inst=None, thing=None, arg=None):
    print 'arg: ', arg
    print 'inst: ', inst
    print 'thing: ', thing
    data = cmds.button(inst.btnA, query=True, label=True)
    print data
    
## This is my addition. 
def myfunc2(inst=None, thing=None, arg=None):
    print 'arg: ', arg
    print 'inst: ', inst
    print 'thing: ', thing
    data = cmds.button(inst.btnA, query=True, label=True)
    print data
    ## what I want to do here is via a loop (IE ballSet1 then ballSet2 ect)
    ## is to not just get the buttons but with code select the corrisponding 
selection set. 
    ## and then use the KEY ALL command. 
    
    


class ui():
    def __init__(self, winName="winTheWindow"):
        self.winTitle = "The Window"
        self.winName = winName
 
    def create(self,setList):
        if cmds.window(self.winName, exists=True):
            cmds.deleteUI(self.winName)

        cmds.window(self.winName, title=self.winTitle)
        self.mainCol = cmds.columnLayout( adjustableColumn=True )
        
        
#this is my addition to loop through and get the buttons named and created 
dynamically.
        for i in setList.split(","):
            print i
            self.btnA = cmds.button( label= i + " Key ALL", c=partial(
myfunc2, self, i) )    #see myfunc2 above for my issues.
            #self.btnA = cmds.button( label= i + " Key ALL", c=myfunc2(i))
            
        # This is the original dummy code from the original author. 
        #self.btnA = cmds.button( label='Press Me - External Func', 
c=partial(myfunc, self, 'say...') )
        #self.btnB = cmds.button( label='Press Me - Internal Func', 
c=partial(self.a, 'something...') )
        #self.btnC = cmds.button( label='Press Me - Internal Func No Args', 
c=self.b)
        cmds.showWindow( self.winName )
        cmds.window(self.winName, edit=True, widthHeight=[250,75])

    def a(self, myarg=None, arg=None):
        print 'myarg: ', myarg

    def b(self, arg=None):
        print 'buttons require an argument'
        print 'the argument passed in will always be the last argument'

# I already the code to get the sets to save space I just created a list.
setList = "ballSet1,ballSet2,ballSet3"

# create the window
inst = ui()
inst.create(setList)

[code]

-- 
view archives: http://groups.google.com/group/python_inside_maya
change your subscription settings: 
http://groups.google.com/group/python_inside_maya/subscribe

Reply via email to