Linux에서 프로그래밍 방식으로 드래그 앤 드롭 이벤트를 트리거합니다.

Linux에서 프로그래밍 방식으로 드래그 앤 드롭 이벤트를 트리거합니다.

저는 현재 스트림 시청자가 예를 들어 마우스 커서를 움직이거나 프로그램을 여는 등 스트리밍 시스템과 상호 작용할 수 있도록 하는 대화형 비디오 스트리밍 애플리케이션(PyQt5에서 구현됨)을 개발 중입니다.

또한 스트림을 통해 한 장치에서 다른 장치로 드래그 앤 드롭을 허용하고 싶습니다. QWidget의 dropEvent()함수와 웹서버를 이용하여 해당 부분을 드래그하여 데이터를 전송할 수 있었습니다. 그러나 스트리밍 시스템의 특정 좌표에서 드롭 이벤트를 트리거하는 데 어려움을 겪고 있습니다. 나는 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 접근 방식에 더 가깝습니다. 하지만 시스템 호출을 할 수는 있습니다.

관련 정보