私はGtk.DrawingArea
でマウスイベントを受信しようとしていますが、Valaを使用すると成功しません。具体的に私はGtk.DrawingArea
サブクラス化していますし、私のコンストラクタで、私は私が受信したいイベントを追加:Valaを使用したGtk.DrawingAreaマウスイベント
this.add_events (Gdk.EventMask.ENTER_NOTIFY_MASK |
Gdk.EventMask.BUTTON_PRESS_MASK);
次に、以下同じコンストラクタで、私はこれらのイベントのためのシグナルハンドラ登録:
this.enter_notify_event.connect (
(page, event) => {
stdout.printf("mouse entered !!! \n");
return true;
}
);
this.button_press_event.connect (
(page, event) => {
stdout.printf("mouse click \n");
return false;
}
);
を両方のケースで何が起こるかを確認するためにreturn true
とreturn false
を試しました。しかし、私はGtk.DrawingArea
上のポインタを移動するとき、またはそれをクリックしたときにコンソールにメッセージが表示されません。私もトップGtk.Window
のイベントを設定します。
this.set_events (this.get_events() |
Gdk.EventMask.ENTER_NOTIFY_MASK |
Gdk.EventMask.BUTTON_PRESS_MASK);
が、イベントは受信を取得していないようです。何がうまくいかないでしょうか?