我正在构建一个应用程序,在某些时候需要知道用户指针的位置。我正在使用 GTK4 和 C。
- 我找到了这个答案(如何使用 gdk_device_get_position()?),它指向该函数
gdk_device_get_position
,但我在 GTK4 文档中找不到它,这表明它不再受支持。如果我遗漏了一些等效函数,我很想知道。 - 换个角度,我成功地为这个小部件实现了一个事件控制器,因此:
GtkEventController *my_controller = gtk_event_controller_motion_new ();
gtk_widget_add_controller (my_widget, my_controller);
g_signal_connect(my_controller, "motion", my_function, NULL);
my_function
当我将鼠标移到小部件内时,此操作成功触发并运行。阅读下面的运动信号签名( https://docs.gtk.org/gtk4/signal.EventControllerMotion.motion.html),似乎它应该宣布 x 和 y 坐标。也就是说,我如何“获得”这些?
void
motion (
GtkEventControllerMotion* self,
gdouble x,
gdouble y,
gpointer user_data
)
如果我遗漏了一些显而易见的东西,请见谅!如果我没有完成我的文档/SO 尽职调查,我就不会问这个问题。
谢谢你!
该主题曾经出现在以下问题上:如何在 gtk4 中的鼠标移动事件上旋转 cairo 圆圈(音量按钮)?
以下是解决方法的总结:
祝编程愉快。