How to use QCoreApplication::postEvent to inject synthetic input events
Can you use QApplication::widgetAt()
to find the correct widget at the position and then post to that?
QPoint pos(x, y);
QMouseEvent *event = new QMouseEvent(type, pos, mouse_button, mouse_buttons, Qt::NoModifier);
QWidget *receiver = QApplication::widgetAt(pos);
QCoreApplication::postEvent(receiver, event);
I wouldn't expect that you would have to do this for the key events though. They should be sent to the focused widget (QApplication::focusWidget()
).
Unfortunately, I haven't tested any of this.
I would suggest posting some code as according to the documentation the signature is:
void QCoreApplication::postEvent ( QObject * receiver, QEvent * event ) [static]
Have you tried giving a pointer to the corresponding QObject
as the receiver
argument?
(edit: note that QWidget
inherits QObject
)