我有一个 Gtk::EventBox 连接了两个事件:button_press_event 和 scroll_event。所有这两个事件都可以正常工作,但是当我按住鼠标按钮时,不会发出滚动事件。
我在课堂上实现了这两个函数bool on_button_press_event (GdkEventButton *e)
和bool on_scroll_event (GdkEventScroll *e)
. 这两个函数返回false
以进一步传播事件。
我正在使用 gtkmm3。
我怎么解决这个问题?
重现问题的代码示例:
#include <gtkmm.h>
#include <iostream>
class MyWindow : public Gtk::Window
{
Gtk::EventBox event_box;
Gtk::ScrolledWindow scrolled;
public:
bool on_button_press_event(GdkEventButton *b)
{
std::cout << "button press" << std::endl;
return false;
}
bool on_scroll_event(GdkEventScroll *e)
{
std::cout << "scrollEvent" << std::endl;
return false;
}
MyWindow ()
{
add(scrolled);
scrolled.add(event_box);
set_default_size(640, 480);
show_all();
}
};
int main(int argc, char** argv)
{
Gtk::Main kit(argc, argv);
MyWindow window;
kit.run(window);
return 0;
}