Linuxでプログラム的にドラッグ&ドロップイベントをトリガーします。

Linuxでプログラム的にドラッグ&ドロップイベントをトリガーします。

私は現在、ストリーム視聴者がマウスカーソルを動かしたりプログラムを開くなど、ストリーミングシステムと対話できるようにするインタラクティブビデオストリーミングアプリケーション(PyQt5で実装)を開発しています。

また、ストリームを介してあるデバイスから別のデバイスへのドラッグアンドドロップを許可したいと思います。 QWidgetのdropEvent()関数とWebサーバを利用して、その部分をドラッグしてデータを転送することができました。しかし、ストリーミングシステムの特定の座標でドロップイベントをトリガーするのは困難です。私はxdndと次のいくつかのアプリを見ました。コピーすでにありますが、すべてドラッグアンドドロップするためにマウスが必要なようです。

X11に、マウスを使わずに特定の座標で特定のペイロードを持つドロップイベントを呼び出すように指示する方法はありますか?

よろしくお願いします!

ベストアンサー1

使用xdotool

xdotool mousedown 1 mousemove x y mouseup 1

まず、左ボタンをクリックして(mousedown 1)を維持します。次に、x、y座標(mousemove x y)にドラッグします。極座標とフラグを使用してウィンドウに--polar相対的な座標を作成することもできます-w <window id>mousemove_relative代わりに、現在の座標に相対座標を使用することもできますmousemove。最後にクリックボタンを放しますmouseup 1

これはデモです。 Dolphinのあるファンから別のファンにファイルをドラッグアンドドロップします。 ここに画像の説明を入力してください。

注:これがあなたの要件を満たすかどうかはわかりません。プログラムではなく CLI アプローチに近い。しかし、システムコールを行うことはできます。

おすすめ記事