在Maya optionMenuGrp中创建函数

2024-06-16 13:31:49 发布

您现在位置:Python中文网/ 问答频道 /正文

是否可以将函数传递到Maya optionMenuGrp(类似组合框)?在

我做了一个简单的用户界面,我有这个组合框(mayacmds而不是PyQt),其中有2个选项。在

我尝试使用以下代码,但在menuItem语句中出现错误提示:

# Error: non-keyword arg after keyword arg
#   File "<maya console>", line 9
# SyntaxError: non-keyword arg after keyword arg #

然后我试着使用test1_func()或test2_func的位置,它会在代码执行时打印出语句,但如果我试图选择第二个菜单项,就不再执行它了。。。在

我的代码:

^{pr2}$

Tags: 函数代码选项arg语句用户界面keywordpyqt
1条回答
网友
1楼 · 发布于 2024-06-16 13:31:49

你必须钩住选项菜单中的change命令,而不是菜单项的命令。但是,由于optionMenu回调将传递所选项目,因此您可以使用它从菜单项本身获取回调并手动启动它:

def optionMenuCallback(*args):
    fn = cmds.menuItem (args[0], q=True, c=True)
    if fn:
        fn()

def menu1Callback():
    cmds.polySphere(n='created_by_item1')
    print 'menu 1 fired'

def menu2Callback():
    cmds.polyCube(n='created_by_item_2')
    print 'menu 2 fired'

w = cmds.window(w=150, h=100)
cmds.columnLayout(adjustableColumn=True)
form = cmds.formLayout(numberOfDivisions=100)
exportSelection = cmds.optionMenuGrp(label='example', cc=optionMenuCallback)
test1 = cmds.menuItem('item1', c = menu1Callback)
test1 = cmds.menuItem('item2', c= menu2Callback)
cmds.showWindow(w)

相关问题 更多 >