Maya Python - 根据活动命令更改按钮图标

Maya Python - Change Button Icon Based On Active Command

使用 maya 16

我确实有一个 iconTextButton 设置,其中 popupMenu 包含几个 menuItem,其中每个 menuItem 都有一个图标。我希望父项 iconTextButton 显示 menuItem 当前处于活动状态的 menuItem 图标。

这是我当前的设置:

cmds.iconTextButton( style='iconAndTextHorizontal', image1='MainButton.png', h=40,w=100, bgc=[0.35, 0.35, 0.35], label='Open Submenu Pallet')

def someImportantFunction (*args):
    somethingImportant

cmds.popupMenu(b=1)
cmds.menuItem(label='do Something', command=someImportantFunction, image1='subMenuIconToChangeTo.png')

总的来说,我对脚本和逻辑仍然很陌生,只是无法理解它。

您可以编辑原始按钮以更改其在启动菜单命令时的外观:

window = cmds.window(title='example')
layout = cmds.columnLayout(adj=True)
ict = cmds.iconTextButton( style='iconAndTextHorizontal', image1='MainButton.png', h=40,w=100, bgc=[0.35, 0.35, 0.35], label='Open Submenu Pallet')
popup = cmds.popupMenu(b=1)

def something(*_):
    print "something" # real work goes here
    cmds.iconTextButton(ict, e=True, label = 'something')

def something_else(*_):
    print "something else"
    cmds.iconTextButton(ict, e=True, label = 'something else')

cmds.menuItem(label='something', image1='somethingIcon', c= something)
cmds.menuItem(label='something else', image1='otherIcon', c=something_else)
cmds.setParent("..")
cmds.showWindow(window)

关键是要确保您坚持对您创建的小部件的引用,以便您可以使用 e=Trueq=True 标志为您的 gui 项目编辑或查询它们。