禁用gtkmm组合框上的滚动

时间:2012-03-07 23:24:14

标签: gtkmm

我正在处理的一个Gtkmm屏幕包含一个Horizo​​ntalBox(滚动),该框包含几个框架,每个框架都有一个ComboBox。我遇到的问题是,当用户尝试滚动Horizo​​ntalBox时,光标偶尔会在其中一个ComboBox上滚动,而ComboBox会滚动而不是Horizo​​ntalBox。这导致数据输入的严重问题。

我试图通过劫持滚动事件来解决问题:

ScreenObject::ScreenObject()
{
    m_CBox->signal_scroll_event().connect(sigc::mem_fun(
        *this,&ScreenObject::ScrollOverride));
    //ComboBox populated here
} 
bool ScreenObject::ScrollOverride(GdkEventScroll *scroll)
{
    cout <<"Scroll Attempted!\n";
    return true;
}

我将鼠标悬停在ComboBox上并旋转我的滚轮,ComboBox像往常一样滚动,调试消息不会被发送到控制台(这简直令人困惑)。

无论我对ComboBox做什么,我似乎都无法触发事件。

为了抑制ComboBox滚动,是否需要劫持其他信号?是否有一些ComboBox的构造函数选项会告诉它忽略滚动信号?

0 个答案:

没有答案