If you only want it to capture the mouse click once after you have told it to attach to the widget, then you can try calling removeEventFilter(obj) in the eventFilter() after you have handled the mouse release. That way it will only fire once and not continue processing events.
Some other suggestions though. Use a constructor and set up some attributes like your clicked and released values. Then store them from your eventFilter like: self.released = value Don't use QCursor to get the positions. The proper values are already there on the event object that is being delivered. Once you have checked the type, then you know it is a QMouseEvent: http://qt-project.org/doc/qt-4.8/qmouseevent.html On Mar 31, 2014 11:44 PM, "Arvid Schneider" <[email protected]> wrote: > Hey Group, > > I have a command which returns click and release coordinates of the mouse > pointer. I should only run once though, and I cant figure out how to do > that. > Can someone give me an insight please. > The wrapinstance method is a custom one (it just checks if PySide or PyQt4 > ist running) > > class Region(QtCore.QObject): >> >> """ Class contains methods to provide information for a specific >>> selected region """ >> >> >>> def eventFilter(self, obj, event): >> >> >>> if event.type() == QtCore.QEvent.MouseButtonPress: >> >> >>> print QtGui.QCursor().pos() >> >> press = QtGui.QCursor().pos() >> >> >>> return False >> >> if event.type() == QtCore.QEvent.MouseButtonRelease: >> >> >>> print QtGui.QCursor().pos() >> >> release = QtGui.QCursor().pos() >> >> >>> return False >> >> # Call Base Class Method to Continue Normal Event Processing >> >> return super(Region, self).eventFilter(obj, event) >> >> >>> def regionDataOnSetup(): >> >> >>> global filter >> >> filter = Region() >> >> view = omui.M3dView.active3dView() >> >> viewWidget = wrapinstance(long(view.widget()), QtCore.QObject) >> >> viewWidget.installEventFilter(filter) >> >> > > > > -- > You received this message because you are subscribed to the Google Groups > "Python Programming for Autodesk Maya" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/python_inside_maya/f4b50bee-75d5-4359-b6e8-c6c24ab065c9%40googlegroups.com<https://groups.google.com/d/msgid/python_inside_maya/f4b50bee-75d5-4359-b6e8-c6c24ab065c9%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Python Programming for Autodesk Maya" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/python_inside_maya/CAPGFgA2B%3DUEggCa4m0%2BJt6q77TDwML%3DQrrRBZ5Hw8p%2Bpm%3DkBtw%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
