... #include <QDebug> #include <X11/Xlib.h> ... bool Application::x11EventFilter(XEvent *event) { XClientMessageEvent *cm = (XClientMessageEvent *) event; if (cm->type == 33 /* ClientMessage */) { qDebug() << "Application::x11EventFilter" << cm->message_type << cm->format; for (long i=0; i<5; i++) qDebug() << " " << cm->data.l[i]; } return QApplication::x11EventFilter(event); } ...
Application::x11EventFilter 464 8 65011750 24 5 0 0 Application::x11EventFilter 277 32 278 70522943 0 0 0 Application::x11EventFilter 172 32 1 600 0 0 0
Application::x11EventFilter 464 8 65011750 20 5 0 0 Application::x11EventFilter 464 8 65011750 24 5 0 0 Application::x11EventFilter 277 32 278 70559392 0 0 0 Application::x11EventFilter 172 32 1 600 0 0 0
... class EFObject(QObject): def eventFilter(s,o,e): print 'efo',o,o.focusWidget(),e,e.type() return False ... class Application(QApplication): ... app = Application(sys.argv) oic = app.inputContext() efo = EFObject() oic.installEventFilter(efo) ...