2009-07-01 11 views
1

マウスポインタがGtkNotebookのエリアを離れるときを検出する必要があります。通常、これはmotion_notifyイベントでは可能ですが、ポインタが十分に速く動かされた場合、イベントはトリガされません。これはGtkNotebookの特定のピクセル領域であるため、GtkEventBoxを使用することはできません。これを行う適切な方法は何ですか?Gtk +マウスポインタ離脱エリアイベント

+0

私はエリア全体をコントロールするのではなく、コントロール全体を知りたいと思っています。 – c4757p

答えて

5

enter-notify-eventleave-notify-event信号を使用する必要があります。

+0

これらは私のためには機能しません。とにかく、コントロール全体ではなくエリアを離れるときを知りたいのです。 – c4757p

1

通知の入力と退出は保証されますが、定期的な動作通知のみが保証されます。ポインタが十分に速く動いている場合は、気になる領域内の座標の通知を受け取ることはありません。

この100%をキャッチする唯一の方法は、このスペースをカプセル化するウィジェット階層にEventBox(または他のウィンドウウィジェット)を埋め込むことです。範囲を複数のウィジェットで定義することができます。

最後に、ウィジェットからの通知の入力や離脱を受け取らない場合は、ウィジェットのイベントマスクを変更する必要があります。

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

うわー---これを行うためにイベントマスクを変更しなければならないことに気付かなかったとは思えません。私はそこに*があるのを知らなかった。私はそれを見なければならないでしょう。ありがとうございました – c4757p