【发布时间】:2011-09-29 14:34:19
【问题描述】:
我试图有一个 Gtk::Widgets 列表,当我点击它时我需要突出显示该小部件,但是当用户按住按钮并拖动到另一个小部件时,第一个将“取消突出显示”并且新的将在 enter_notify 上突出显示。
我已经尝试在多个组合中使用 on_enter_notify_event 和 on_button_press_event(是的,我正在添加事件),但是每次我“按下”小部件时,它都会启动一个拖动事件,而 enter_notify 和 leave_notify 不会火。
有没有办法忽略拖动事件?我试过在它开始时结束它,但我认为问题是 on_notify 不会在鼠标按下时触发。还有其他方法吗?
任何帮助或建议将不胜感激。
【问题讨论】:
-
也许你应该通过组合按钮按下事件/按钮释放事件来处理高亮。
-
@erick2red 这就是我最初的方式。拖动事件仍在启动,我无法突出显示其他单元格。
-
那么,看看[GtkButton代码] (git.gnome.org/browse/gtk+/tree/gtk/gtkbutton.c)
-
我在找什么?我已经扩展了 Gtk::Layout 所以我可以有几个标签和一个图像,所以我认为按钮代码对我正在做的事情没有任何影响。我认为必须有一种方法可以禁用“begin_drag”事件的触发,或者完全不同的方法。