有什么方法可以访问/编辑撤消队列吗?在
我问这个问题的原因是,在我当前的工具中,我在我的一个重命名函数中创建了以下内容(双击QListWidgetItem,输入一个新名称并命令重命名将使用新的输入名称):
cmds.undoInfo(chunkName='renameChunk', openChunk=True)
# do cmds.rename operations
cmds.undoInfo(chunkName='renameChunk', closeChunk=True)
但是,如果我尝试使用撤消函数(ctrl+z)来恢复命名,则需要按几次组合键,而不是预期的1次。当打印出撤消队列时,我注意到有很多“空白”条目可能是导致多个撤消的原因。在
^{pr2}$
我要提供一个答案,因为你所做的有点冒险。现在,您假设
cmds.undoInfo(chunkName='renameChunk', closeChunk=True)
将运行,但是如果在这两行之间发生错误,将永远不会执行该行,您将留下一个打开的undo块。在更安全的方法是打开一个撤消块,然后将代码包装在
try
finally
中。这样无论发生什么情况,都可以确保块将在finally
块中关闭:或者,您可以更喜欢创建自己的撤消类,并使用其
^{pr2}$__enter__
和__exit__
特殊方法:只要你这样做,你不应该有所有这些空白撤销调用(至少我没有!)。尽管要尽量保持它的紧凑,所以打开一个undo块,完成工作,然后立即关闭它。避免误入歧途去做其他事情,比如管理你的gui之类的事情。在
相关问题 更多 >
编程相关推荐