什么是gtk.gdk.get_default_root_window()。get_pointer()的替代品,现在已弃用

问题描述 投票:0回答:1

我正在使用运行Debian Buster的Python 3和GTK 3。我需要全局地在屏幕上找到鼠标指针的位置,而不仅仅是在应用程序自己的窗口内。

我曾经使用gtk.gdk.get_default_root_window().get_pointer(),并且可以使用,但是在错误消息中将其标记为已弃用。我到处搜索,并在GTK 3文档中找到“设备”的参考,但很快就迷路了。做实验时,我无法找到如何执行此操作。如果我了解如何获取“设备”,而不是特定的设备,而仅是代表出现在屏幕上的鼠标指针的“设备”,我可能会成功。我不在乎什么设备将指针放在那里。现在,我已经完成了使用XWindows调用所需的操作,但是这似乎对于OS来说太具体了,为此我想坚持使用GTK。

python-3.x replace gtk3 deprecated
1个回答
0
投票

绝对显而易见:

GdkWindow * gtk_widget_get_window (GtkWidget *widget);
// then pass it to
GdkDisplay * gdk_window_get_display (GdkWindow *window);
// 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文档没有一个地方可以描述所有这些屏幕,显示器,监视器等,但是可以尝试一下。

© www.soinside.com 2019 - 2024. All rights reserved.