Maya–为什么清除历史记录命令后无法执行打印方法?

2024-06-02 06:25:10 发布

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

cmds.scriptEditorInfo(clearHistory=True)
print("hi")

最上面一行是Maya脚本输出窗口,然后是下面一行,该行应该打印hi。但是,当您运行此命令时,它会闪烁hi输出,然后清除所有内容。所以cmds.scriptEditorInfo(clearHistory=True)是最后执行的。有人能给我解释一下,并帮助我理解如何清理输出窗口,然后打印hi

我从这里得到了clear函数: How can I clear the Maya Script Editor programatically?


Tags: the函数命令脚本true内容hican
2条回答

我还可以确认它清除了历史记录而不打印,即使我循环打印了100次

有一种方法可以绕过它,使用evalDeferred,这样它就不会立即执行:

import maya.cmds as cmds

cmds.scriptEditorInfo(clearHistory=True)
cmds.evalDeferred("print 'Hello world!'")

或者,如果要在清除命令后运行大量代码:

import maya.cmds as cmds

def run_code():
    # Run any code here
    print('Hello!')

cmds.scriptEditorInfo(clearHistory=True)
cmds.evalDeferred("run_code()")

现在,历史记录被清除,我们看到了预期的print命令

这似乎是一个错误

我尝试了三种方法,结果表明,如果同时执行这两行,这三种方法都不起作用但如果每一行单独执行,它肯定会起作用:首先是scriptEditorInfo()方法,其次是print()方法

你的做法:

import maya.cmds as mc

mc.scriptEditorInfo(clearHistory=True)
print("Hello")

第二种方法(pymel):

import pymel.core as pc

pc.scriptEditorInfo(clearHistory=True)
print("Hello")

第三种方法(MEL):

scriptEditorInfo -clearHistory ;
print "Hello" ;

相关问题 更多 >