Sent too quickly...
I meant to say that just calling setFocus() still seems to require a click 
before it really grabs the keyboard:

http://pastebin.com/KfpjXABm

import sip
import maya.OpenMayaUI as OpenMayaUI
from PyQt4 import QtGui, QtCore

class MouseEventFilter(QtCore.QObject):
    def eventFilter(self, obj, event):
        typ = event.type()
        if typ == event.Enter or typ == event.MouseButtonPress:
            print "mouse enter"
            obj.setFocus()
        elif typ == event.Leave:
            print "mouse leave"
            obj.clearFocus()
        elif typ == event.KeyPress:
            print "working..."
            return True
        return False

view = OpenMayaUI.M3dView.active3dView()
widget = sip.wrapinstance(long(view.widget()), QtCore.QObject)
eventFilter = MouseEventFilter()
widget.installEventFilter(eventFilter)

# remove
widget.removeEventFilter(eventFilter)
eventFilter.deleteLater()


On Feb 14, 2013, at 7:56 AM, Justin Israel wrote:

> I got it working after a click occurs in the viewport, but not when you just 
> try and call setFocus() on the widget.
> 
> 
> On Feb 13, 2013, at 11:35 PM, luiz elias wrote:
> 
>> it works fine if I install the eventFilter on the main window, but I can't 
>> find a way to set keyboard focus for the QGLWidget.
>> 
>> thanks!
>> 
>> 
>> 
>> -- 
>> 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 post to this group, send email to [email protected].
>> For more options, visit https://groups.google.com/groups/opt_out.
>>  
>>  
> 

-- 
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 post to this group, send email to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to