2013-11-22 3 views
0

나는 pygtk를 사용했고 클립 보드 소유자 변경을 사용하여 복사 작업이 내 리눅스 컴퓨터에서 수행 될 때마다 추적 할 수있었습니다. 붙여 넣기 이벤트를 추적 할 수 없습니다. 그래서 거기에 붙여 넣기 작업을 찾을 수있는 방법이 있습니다. pygtk, pyqt, xlib 또는 파이썬의 다른 라이브러리에 정의 된 이벤트가 있습니까? 나는 여러 해 동안 해결책을 찾고 있습니다. 어떤 사람이 해결책이나 아이디어가 있다면 도움이거기에 붙여 넣기 작업이 내 리눅스 컴퓨터에서 발생하는 방법입니다 찾을 수 있습니까?

+0

[이 주제에 관한 블로그] (http://commonsmachinery.se/2013/07/copy-paste-linux/)를 보았습니까? 도움이 될지 모르겠지만 xlib을 통해 클립 보드의 저수준 조작을 수행하는 파이썬 스크립트가 포함되어 있습니다. 이것은 적어도 당신이하려는 일이 가능할지를 말해 줄 수 있습니다. – ekhumoro

답변

0

자신의 데이터의 붙여 넣기 작업 (예 : 자신의 응용 프로그램에서 클립 보드로 설정 한 데이터)을 추적하는 데만 신경 쓰면 QMimeData의 하위 클래스로 바꾸어 retreiveData()을 다시 구현할 수 있습니다 이것은 pyqt와 함께 가능해야하지만, 나는 시도하지 않았다).

설명 : 응용 프로그램에서 데이터를 복사하면 데이터가 결국 붙여 넣기 만하면 데이터가 요청되므로 모든 형식의 모든 데이터를 미리 준비 할 필요없이 많은 데이터 형식을 제공 할 수 있습니다. 데이터가 실제로 필요할 때만 데이터를 제공한다는 아이디어입니다. (참고 : QMimeData는 편의상 setData()를 제공하고 내부적으로 retrieveData()을 구현하여 설정 한 데이터를 반환합니다. 이 사실을 사용하여 데이터를 붙여 넣은 시간을 감지 할 수 있습니다. (비록 이것을 구현하려고하지는 않았지만)