maya.cmds 结束脚本的对话框

maya.cmds Dialog to end script

一旦找不到属性,我想结束整个脚本。目前,我有以下代码。我显示一个对话框并使用 sys.exit() 结束脚本,但我想知道是否有一个 cmds 对话框可以自动为您执行此操作而无需 sys.exit()

def check_attr(attr):
    if not cmds.select(cmds.ls(attr)):
         cmds.confirmDialog(title= 'Attribute not found   ', message = attr+' attribute was not found', button =['OK'])
         sys.exit()

我的问题:是否存在停止脚本的 cmds...对话框?

由于您正在使用一个函数,最简单的方法是在您的 if 条件中使用 return,这样它就不会继续函数的其余部分:

def check_attr(attr):
    if not cmds.select(cmds.ls(attr)):
         cmds.confirmDialog(title= 'Attribute not found   ', message = attr+' attribute was not found', button =['OK'])
         return

    print "Continuing script"


check_attr("someAttr")

也可以使用OpenMaya.MGlobal.displayError在Maya的任务栏中显示:

import maya.OpenMaya as OpenMaya


def check_attr(attr):
    if not cmds.select(cmds.ls(attr)):
         OpenMaya.MGlobal.displayError(attr + ' attribute was not found')
         return

    print "Continuing script"


check_attr("attr")

尽管要小心,因为 OpenMaya.MGlobal.displayError 只是 显示 一个错误,它不会像 cmds.error 那样停止执行。您也可以使用 cmds.error,但我发现它在任务栏中吐出的错误可读性差很多。