2009-07-01 122 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