Maya – 为什么在清除历史命令后无法执行 Print 方法?
Maya – Why Print method can't be executed after Clear History command?
cmds.scriptEditorInfo(clearHistory=True)
print("hi")
第一行清除了 Maya 脚本输出 window,然后下面的行应该打印 hi
。但是当你 运行 这个时,它会闪烁 hi
输出,然后清除所有内容。所以 cmds.scriptEditorInfo(clearHistory=True)
最后执行。有人可以向我解释一下并帮助我了解如何清理输出 Window 然后打印 hi
.
我从这里得到了明确的功能:
看来是个bug。
我尝试了三种方法,结果发现如果您同时执行这两行,这三种方法都不起作用。 但是如果每一行都单独执行肯定可以:首先是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" ;
我也可以确认它清除了历史记录并且不打印,即使我循环打印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()")
现在历史清除了,我们看到了预期的打印命令。
您可以使用:
import maya.cmds
reporter = mel.eval( 'string $tmp = $gCommandReporter;' )
cmds.cmdScrollFieldReporter(reporter, e=True, clear=True)
cmdScrollFieldReporter 命令需要定义报告器。
cmds.scriptEditorInfo(clearHistory=True)
print("hi")
第一行清除了 Maya 脚本输出 window,然后下面的行应该打印 hi
。但是当你 运行 这个时,它会闪烁 hi
输出,然后清除所有内容。所以 cmds.scriptEditorInfo(clearHistory=True)
最后执行。有人可以向我解释一下并帮助我了解如何清理输出 Window 然后打印 hi
.
我从这里得到了明确的功能:
看来是个bug。
我尝试了三种方法,结果发现如果您同时执行这两行,这三种方法都不起作用。 但是如果每一行都单独执行肯定可以:首先是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" ;
我也可以确认它清除了历史记录并且不打印,即使我循环打印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()")
现在历史清除了,我们看到了预期的打印命令。
您可以使用:
import maya.cmds
reporter = mel.eval( 'string $tmp = $gCommandReporter;' )
cmds.cmdScrollFieldReporter(reporter, e=True, clear=True)
cmdScrollFieldReporter 命令需要定义报告器。