如何知道Gtk :: ComboBoxText是否弹出

时间:2014-01-21 18:06:48

标签: c++ gtk gtkmm

我正在编写一个简单的GUI,其中有一个ComboBoxText。当用户点击ComboBoxText时,我会写一条日志消息。 我已经尝试了几乎所有按钮释放和弹出信号,但没有结果。唯一有效的是signal_changed(),但我并不需要。请帮帮我,下面是我的示例代码:

myCombo->signal_button_release_event().connect(sigc::mem_fun(this,&ComboBoxText::ComboInput),false); 

这是回调函数:

bool ComboBoxText::ComboInput(GdkEventButton *pEvt) { 

// Here do the desired stuffs !! 
return false; }

2 个答案:

答案 0 :(得分:0)

使用GTK +属性popup-shown。不确定Gtkmm语法,可能是property_popup_shown().get_value()

如果您需要收听信号,请连接到popdownnotify::popup-shown(后者在属性值更改时调用;同样,我不确定Gtkmm语法)。

答案 1 :(得分:0)

这里的想法是在单击ComboBoxText时触发事件。经过一些阅读后,我发现ComboBoxText没有触发任何on_click事件。 人们可以屏蔽按键事件(顺便说一下被触发)并调用信号处理程序。对于专门寻找on_click事件的人而言,这对于那些使用键盘或触摸屏设备的人来说可能并不方便。这是一小段代码:`

mCombo.add_events(GDK :: KEY_PRESS_MASK);                  。mCombo.signal_event()连接(sigc :: mem_fun(此,&安培;类名::处理程序),假);

欢呼:)