How to get from Maya event of a change highlight objects in the scene?

后端 未结 3 1470
北荒
北荒 2021-01-17 02:39

I\'m using: Maya2014 + pyqt4.8 + python2.7

I\'m doing an application which allows you to speed up and simplify the selection of items in Maya. Is a selector which th

相关标签:
3条回答
  • 2021-01-17 02:53

    I really recommend if you doing a pretty heavy stuff then stay away from scriptjob. I prefer to go with API

    def test(*args, **kwargs):
        print "Fooo"
    
    
    import maya.OpenMaya as OpenMaya
    idx = OpenMaya.MEventMessage.addEventCallback("SelectionChanged", test)
    
    #when ever you finish doing your stuff
    OpenMaya.MMessage.removeCallback(idx)
    
    0 讨论(0)
  • 2021-01-17 02:54

    You can use scriptJob command for this.

    scriptJob let's you specify code or perform some action(s) when specified condition is met or a specified event is triggered.

    For selection change, you'd use the event flag with "SelectionChanged" as parameter:

    myScriptJobID = scriptJob(event=["SelectionChanged", your_function])
    
    # You can later use this scriptJob's id to modify or delete it like so:
    
    scriptJob(kill=myScriptJobID)
    

    Check out the docs for more options.

    0 讨论(0)
  • until I found just such a solution based on maya api:

    self.sJob = cmds.scriptJob(event=['SelectionChanged', self.myFnc])
    

    This mechanism creates Maya event that calls my function when there is a change object selection.

    Perhaps there is a more correct option. For example to get identifokator window maya and it make your event. Although I think that the use of maya api also not a bad option. The only downside is that you have to follow and remove scriptJob when closing a window, but it's a solvable problem.

    0 讨论(0)
提交回复
热议问题