如何通知小部件上的每次光标移动?

How to be notified about each cursor movement over widget?

我是 gtk 的新手。 我需要跟踪 window 上的鼠标光标位置。我发现 "motion-notify-event" 看起来很有希望,但它似乎只有在按下鼠标按钮时才会生成。无论按钮状态如何,如何才能在每次鼠标光标移动时收到通知?

运动通知事件信号发射需要两件事:

  1. 小部件必须有它自己的 GdkWindow(并非所有小部件都如此,但对于例如 GtkWindow 是这样)
  2. GDK_POINTER_MOTION_MASK 必须在小部件事件掩码中设置

后者可以通过以下方式完成:

gtk_widget_add_events (my_widget, GDK_POINTER_MOTION_MASK);