ฉันพยายามรับกิจกรรมเมาส์บน Gtk.DrawingArea
ของฉันโดยใช้ Vala แต่ไม่ประสบผลสำเร็จ โดยเฉพาะฉันกำลังจัดคลาสย่อย Gtk.DrawingArea
และในตัวสร้างของฉัน ฉันเพิ่มเหตุการณ์ที่ฉันต้องการรับ:
this.add_events (Gdk.EventMask.ENTER_NOTIFY_MASK |
Gdk.EventMask.BUTTON_PRESS_MASK);
จากนั้น ใน Constructor เดียวกันด้านล่าง ฉันจะลงทะเบียนตัวจัดการสัญญาณสำหรับเหตุการณ์เหล่านี้:
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);
แต่ดูเหมือนเหตุการณ์จะไม่ได้รับ จะเกิดอะไรขึ้น?