문제

내가 사용하여 트리 제어에 Maya2009 지만 나는 구문 오류가에서 드래그 앤 드롭.내 코드는 다음과 같습니다(단순한 간결):

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 // 

편집: 는 것을 밝혀 문제가 있었으로 인해 트리는 여전히 구현하는 멜 함수 호출의 대부분에서의 이벤트 콜백이 있습니다.는 오류를 상기에서 발생한 멜 통역관으로 그것도 먹이를 인수하는 명령어 이름입니다.

도움이 되었습니까?

해결책

보다 http://download.autodesk.com/us/maya/2009help/commandspython/treeview.html: draganddropcommand는 문자열입니다. 당신은 바운드 방법을 전달합니다. Maya는 repr을 사용하고 있습니다. 확실하지 않지만 문자열이 바운드 메소드가 아닌 최상위 수준 (모듈 레벨) 함수의 이름을 지정해야한다고 생각합니다.

다른 팁

로 Maya2010 의 트리는 위젯을 나타난 여전히 필요한 문자열 이름의 멜 절차에 사용되는 몇몇을의 그것의 콜백을,하지만 다른 사람입니다.예를 들어,dragCallback 및 dropCallback 할 예상대로 작동하지만,selectCommand 고 다른 하지 않습니다.다른 많은 위젯을 받아들이는 기능에 대한 그들의 콜백이 있습니다.지만 문서 목록을 인수를 위한 일부 트 콜백 문자열로,그것은 없는 문자열이어야 합 멜 절차의 이름,그리고 그것은 확실히 일치하지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top