【发布时间】:2013-04-20 11:40:46
【问题描述】:
我有一个 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;
}
【问题讨论】:
标签: c++ events gtk signals gtkmm