Piszę program, który łączy się z oprogramowaniem do projektowania, jak zewnętrzna wtyczka, a następnie monitoruje ruchy myszy i zdarzenia. Podejmie działania oparte na stanie połączonych zdarzeń myszy programowych.Otrzymuj zdarzenia myszy poza oknem Tkintera w Pythonie
Pomysł polega na tym, że zewnętrzna aplikacja będzie mogła łączyć się z wieloma podobnymi programami zamiast z programowymi wtyczkami.
Prototyp i potencjalnie oprogramowanie produkcyjne jest pisane w pythonie przy użyciu biblioteki graficznej Tkinter. Próbą jest uczynić ją prostą i przenośną.
Byłem w stanie złapać pozycję myszy na poziomie "OS" (prawdziwy ekran X, Y) bez konieczności aktywowania okna Tkinter. Moim problemem jest to, że nie znajduję sposobu na łatwe uzyskanie zdarzeń kliknięcia myszą od Tkintera. Mogę zbierać zdarzenia tylko w aktywnym oknie Tkintera.
Tkinter zapewnia to dla pozycji myszy:
coord = self.gui.winfo_pointerxy()
nie mogę znaleźć podobny do zdarzeń myszy. Istnieją biblioteki, takie jak selfspy i Pymouse (obecnie część PyUserInput), które monitorują zdarzenia, ale głównie służą do kontroli urządzeń wejściowych. Mój pomysł na tworzenie kopii zapasowych polega na użyciu tych bibliotek w celu odniesienia się do pisania własnego programu monitorującego dane wejściowe.
Moje dwie główne platformy to Mac i Windows.
Krótko mówiąc:
- Czy tkinter dać mi zdarzenia myszy, gdy zdarzenia są oknem Tkinter.
- Jeśli nie, czy istnieją inne opcje "gotowe do użycia", które mogą powodować zdarzenia myszy X, Y i myszy.
- Jeśli nie ma gotowych rozwiązań, niektóre zalecenia dotyczące podejścia i interfejsu API. (Wygląda jak Win32API dla Windows, kwarc i/lub kakao w Mac i Xlib w Linuksie)
Dzięki za poświęcony czas
Dziękuję za komentarz. Wydaje się to bardzo pomocne dla pozycji i ruchu myszy, ale czy zdarzenia związane z przyciskami/kliknięciami poza oknem aplikacji są również dostępne z tymi interfejsami API? Najprostszy przykład, jaki mogę sobie wyobrazić, to rodzaj funkcjonalności, której szukam, to aplikacja do zrzutu ekranu, którą należy kliknąć i przeciągnąć poza okno aplikacji. Musisz widzieć kliknięcia myszy wraz z ruchem/pozycją myszy. – TravisT
Z wyjątkiem wdów, nie sądzę, że istnieją jakieś metody, aby uzyskać kliknięcia zdarzeń myszy poza twoim oknem. –