我在 Maya 2009 中使用 TreeView 控件,但在拖放时出现语法错误。我的代码如下(为简洁起见):
class View(event.Dispatcher):
def __init__(self):
self.window = cmds.window()
tree_view = cmds.treeView(
numberOfButtons=1,
allowReparenting=True,
dragAndDropCommand=self.tree_view_onDrag
)
cmds.showWindow(self.window)
def tree_view_onDrag(self, dropped_items, old_parents, old_indexes, new_parent, new_indexes, item_before, item_after, *args):
print "worked"
当我拖放元素时,我会在控制台中执行以下命令:
<bound method View.tree_view_onDrag of {"layer 3"} {""} {1} "layer 1" {0} "" "layer 2";
并得到以下错误:
// Error: <bound method View.tree_view_onDrag of {"layer 3"} {""} {1} "layer 1" {0}€ //
// Error: Line 1.1: Syntax error //
编辑:事实证明,我遇到的问题是由于 treeView 仍在其大多数事件回调上实现 MEL 函数调用。MEL 解释器在尝试将参数提供给命令名称时抛出上述错误。