Maya Python-基于活动命令更改按钮图标

Maya Python-基于活动命令更改按钮图标,python,button,icons,menuitem,maya,Python,Button,Icons,Menuitem,Maya,使用maya 16 我有一个iconTextButton设置,有一个popupMenu包含几个menuItem,其中每个menuItem都有一个图标。我想让父对象,即icontext按钮,显示menuItem图标,根据该图标,menuItem当前处于活动状态 这是我当前的设置: cmds.iconTextButton( style='iconAndTextHorizontal', image1='MainButton.png', h=40,w=100, bgc=[0.35, 0.35, 0.35

使用maya 16

我有一个
iconTextButton
设置,有一个
popupMenu
包含几个
menuItem
,其中每个
menuItem
都有一个图标。我想让父对象,即
icontext按钮
,显示
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)

关键是要确保您保留对您创建的小部件的引用,以便您可以使用gui项目的
e=True
q=True
标志编辑或查询这些小部件。

您只需编辑原始按钮,即可在启动菜单命令时更改其外观:

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)

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

如果您不介意的话,还有一件事。既然
iconTextbutton
将显示所选的
menuItem
,我将如何设置它,以便
iconTextbutton
根据当前选择的
menuItem
更改其默认命令。我想这只是我现在的一小步,没有找到任何参考。如果你不介意的话,还有一件事。既然
iconTextbutton
将显示所选的
menuItem
,我将如何设置它,以便
iconTextbutton
根据当前选择的
menuItem
更改其默认命令。我想这只是我现在的一小步,没有找到任何参考资料。