我将通过网络传入的键盘和鼠标事件注入我的 Qt 应用程序并QCoreApplication::postEvent
用于此目的。鼠标坐标是绝对屏幕像素坐标。
QMouseEvent *event = new QMouseEvent(type, QPoint(x, y), mouse_button, mouse_buttons,
Qt::NoModifier);
QCoreApplication::postEvent(g_qtdraw.main.widget, event);
最初我只有一个小部件(由 引用g_qtdraw.main.widget
),所以我只是将那个小部件用作postEvent
. 现在我的应用程序有多个小部件,上面的代码不再做我想做的事。
第二个小部件以全屏模式显示,我知道所有鼠标事件都必须转到此窗口,但使用上面的代码,它们仍会路由到主小部件。
如何选择正确的小部件作为接收器(鼠标 x,y 坐标下的那个)?有没有一种标准方法,以便 Qt 选择正确的小部件,还是我必须自己跟踪它?