Skip to content

Instantly share code, notes, and snippets.

@Onefabis
Created May 24, 2018 21:32
Show Gist options
  • Save Onefabis/ed8eb70cd7e5e5e6205c6a9a8f63f56a to your computer and use it in GitHub Desktop.
Save Onefabis/ed8eb70cd7e5e5e6205c6a9a8f63f56a to your computer and use it in GitHub Desktop.
Detect mouse button clicks in every modelPanel Editor
import maya.cmds as mc
import maya.OpenMayaUI as apiUI
from PySide2 import QtGui, QtCore, QtWidgets
from shiboken2 import wrapInstance
class MouseDetector(QtCore.QObject):
def eventFilter(self, obj, event):
if event.type() == QtCore.QEvent.MouseButtonPress:
if event.button() == QtCore.Qt.LeftButton:
print 'left'
elif event.button() == QtCore.Qt.RightButton:
print 'right'
return super(MouseDetector, self).eventFilter(obj, event)
global filterFunc
filterFunc = MouseDetector()
for editorName in mc.lsUI( l=1, panels=1 ):
if mc.objectTypeUI(editorName)=='modelEditor':
ptr = apiUI.MQtUtil.findLayout(editorName)
viewWidget = wrapInstance(long(ptr), QtWidgets.QStackedWidget)
for k in viewWidget.findChildren(QtWidgets.QWidget):
if k.metaObject().className() == 'QmayaGLWidget':
k.installEventFilter(filterFunc)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment