что является заменой для gtk.gdk.get_default_root_window (). get_pointer (), которая теперь устарела - PullRequest
0 голосов
/ 19 февраля 2020

Я использую Python 3 и GTK 3 под управлением Debian Buster. Мне нужно найти местоположение указателя мыши на экране глобально, а не только внутри собственного windows приложения.

Я использовал gtk.gdk.get_default_root_window().get_pointer(), и это работает, но это было помечено как устаревшее в сообщении об ошибке. Я искал повсюду и нашел в документации GTK 3 ссылки на «устройства», но довольно быстро заблудился. Экспериментируя, я не смог выяснить, как это сделать. Я мог бы преуспеть, если бы понял, как получить «устройство» - не конкретное устройство c, а просто «устройство», представляющее указатель мыши в том виде, как он появляется на экране. Мне все равно, какое устройство ставит указатель туда. На данный момент я сделал то, что мне было нужно, используя вызовы X Windows, но это кажется слишком специфичным для c для ОС, и я хотел бы придерживаться GTK для этого.

1 Ответ

0 голосов
/ 20 февраля 2020

Абсолютно очевидно:

GdkDisplay * gdk_display_get_default (void);
// then pass it to
GdkSeat * gdk_display_get_default_seat (GdkDisplay *display);
// then pass it to
GdkDevice * gdk_seat_get_pointer (GdkSeat *seat);
// and finally, pass it to
void gdk_device_get_position (GdkDevice *device, ... );

Честно говоря, IDK, что я делаю, и документация GDK не имеют единого места для описания всех этих экранов, дисплеев, мониторов и т. Д. c, но попробуйте это .

...