2009-07-01 123 views
1

我需要检测鼠标指针何时离开GtkNotebook中的一个区域。通常,这可以通过motion_notify事件来实现,但是如果指针移动得足够快,则不会触发该事件。因为这是GtkNotebook中的某个像素区域,所以不可能使用GtkEventBox。什么是正确的方法来做到这一点?Gtk +鼠标指针离开事件

+0

我想知道我什么时候离开一个区域,而不是整个控制。 – c4757p 2009-07-06 17:14:40

回答

5

您应该使用enter-notify-eventleave-notify-event信号。

+0

这些都不适合我,无论如何,我想知道我什么时候离开一个区域,而不是整个控制。 – c4757p 2009-07-06 17:14:02

1

您将获得进入和离开通知,但仅限定期动作通知。如果指针移动得足够快,您将不会收到关于您所关注区域内坐标的通知。

捕捉这个100%的唯一方法是将一个EventBox(或其他窗口化的窗口小部件)建立到您的窗口小部件层次结构中,并封装这个空间。请记住,您可能能够根据多个小部件定义区域。

最后,如果您未收到来自窗口小部件的输入或离开通知,则可能必须修改窗口小部件的事件掩码。

myWidget->add_events(Gdk::ENTER_NOTIFY_MASK); 
+0

哇---不能相信我从来没有意识到我不得不修改事件掩码来做到这一点。我不知道那里有*一个。我得看看这个。谢谢 – c4757p 2009-07-18 11:05:45