ネットワーク経由で届くキーボードとマウスのイベントを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
) が 1 つしかなかったので、単純にそのウィジェットを の受信側引数として使用しましたpostEvent
。現在、私のアプリケーションには複数のウィジェットがあり、上記のコードは私が望んでいることを実行しません。
2 番目のウィジェットがフルスクリーン モードで表示され、すべてのマウス イベントがこのウィンドウに移動する必要があることはわかっていますが、上記のコードでは引き続きメイン ウィジェットにルーティングされます。
正しいウィジェットをレシーバー (マウスの x、y 座標の下にあるもの) として選択するにはどうすればよいですか? Qtが適切なウィジェットを選択する標準的な方法はありますか、それとも自分で追跡する必要がありますか?