python - Gtk:如何检测 EventBox 上的鼠标位置?
问题描述
我一直在尝试用 Python 编写简单的 CAD 应用程序。我正在修补 pyglet,得到了一些结果:,但我决定切换回 Gtk,但我碰壁了:
我无法在 EventBox 上获得鼠标指针位置(使用 pyglet,它是图片中窗口应用程序左下角的标签)。什么信号是为它设计的?还是我应该使用另一种方法?
我将不胜感激任何信息或资源。提前致谢。
解决方案
问题:如何检测鼠标在 EventBox 上的位置?
- 如何在事件框上捕获事件以检测 gtk 中的鼠标移动
- Gtk.EventBox
小
Gtk.EventBox
部件是一个子类,Gtk.Bin
它也有自己的窗口。它很有用,因为它允许您捕获没有自己窗口的小部件的事件。 - Gtk.Widget.add_events(事件)
将
events
位域中events
的 加到 的事件掩码中self
。 - Gdk.EventMask
一组位标志,用于指示窗口要接收哪些事件。
- GDK_MOTION_NOTIFY 指针(通常是鼠标)已移动
Gtk.EventBox
应该有旗帜,而不是窗户!
box = Gtk.EventBox()
box.connect("motion-notify-event", self.on_mouse_move)
box.add_events(Gdk.EventMask.POINTER_MOTION_MASK)