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

时间:2016-05-10 16:02:24

标签: python user-interface checkbox radio-button maya

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

在我的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 )

我试图从显示here的示例中获得一个想法,但是 但是当我放下cmds.radioButtonGrp(a, ed=True, enable=False)时,它只是不断创建新的单选按钮,与浮动字段示例中显示的不同。

底线是 - 我只是希望每当我点击复选框时,单选按钮都会变灰并被禁用。说到这个 - 是否有可能像浮动场一样使收音机按钮变灰?我注意到禁用它们只会使它们不可点击 - 但不会变灰。

提前谢谢。

1 个答案:

答案 0 :(得分:0)

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 )