可切换单选按钮(编辑命令)

Switchable Radio Buttons (editing a command)

我对如何编写用于编辑命令的正确语法有些困惑。

在我的 radioOn 和 radioOff 命令中,我想要启用/禁用复选框来启用或禁用单选按钮。

from functools import partial
import maya.cmds as cmds

def one ():
    print '1'

def two ():
    print '2'



winID = 'xx'
if cmds.window(winID, exists=True):
    cmds.deleteUI(winID)


window = cmds.window(winID, sizeable = False, title="Resolution Switcher", widthHeight=(300, 100) )

cmds.columnLayout( )
cmds.text (label = '')
cmds.text (label = '')
cmds.checkBoxGrp( cat = (1,'left', 20), ncb = 1, l1='  DISABLE', offCommand = partial(radioOn, a), onCommand = partial(radioOff, a) )
a = cmds.radioButtonGrp( cat = [(1,'left', 90),(2, 'left', 100)], numberOfRadioButtons=2,   on1 = 'one ()' , on2 = 'two ()' )
cmds.text (label = '')

def radioOff (a, *args):
    print 'radios off'
    a(ed=True, enable=False)

def radioOn (a, *args):
    print 'radios on'
    a(ed=True, enable=False)


cmds.showWindow( window )

我试图从例子中得到一个想法,比如显示的例子 ,但是 但是当我放下 cmds.radioButtonGrp(a, ed=True, enable=False) 时,它只是不断地创建新的单选按钮,与示例中带有浮动字段的内容没有什么不同。

底线是 - 我只想在我点击复选框时将单选按钮灰显并禁用。说到这 - 是否可以像浮动字段一样使单选按钮变灰?我注意到禁用它们只会使它们无法点击 - 但不会变灰。

提前致谢。

from functools import partial
import maya.cmds as cmds

def one (*args):
    print '1'

def two (*args):
    print '2'

def radioSwitch (a, state, *args):
    if state:
        cmds.radioButtonGrp(a, e=True, enable=False)
    else:
        cmds.radioButtonGrp(a, e=True, enable=True)

winID = 'xx'
if cmds.window(winID, exists=True):
    cmds.deleteUI(winID)


window = cmds.window(winID, sizeable = False, title="Resolution Switcher", widthHeight=(300, 100) )

cmds.columnLayout( )
cmds.text (label = '')
cmds.text (label = '')
cb_disable = cmds.checkBoxGrp( cat = (1,'left', 20), ncb = 1, l1='  DISABLE', offCommand = "" , onCommand = "" )
a = cmds.radioButtonGrp( cat = [(1,'left', 90),(2, 'left', 100)], enable=True, numberOfRadioButtons=2,   on1 = one , on2 = two )
cmds.checkBoxGrp(cb_disable, e=1, offCommand = partial(radioSwitch, a, False))
cmds.checkBoxGrp(cb_disable, e=1, onCommand = partial(radioSwitch, a, True))
cmds.text (label = '')
cmds.showWindow( window )