当前位置: 技术问答>linux和unix
gtk编程,如何取得当前焦点在哪个控件上
来源: 互联网 发布时间:2016-01-27
本文导语: 我的界面上有四个button,按不同的button会响应不同的事件,我将button的事件响应写在一个函数中,那么在这个函数中,我就需要判断当前焦点在哪个button上,但是我怎么知道当前焦点在哪个button上,请高手指教,小弟...
我的界面上有四个button,按不同的button会响应不同的事件,我将button的事件响应写在一个函数中,那么在这个函数中,我就需要判断当前焦点在哪个button上,但是我怎么知道当前焦点在哪个button上,请高手指教,小弟不胜感激,在线等待。
|
假设你的回调函数格式如下:
int func(GtkWidget *widget , gpointer data);
方法一:
添加gtk_widget_set_name(btn1 , "button1");然后在回调函数func中用gtk_widget_get_name(widget);来判断不同的button
方法二:
g_signal_connect(...,(gpointer)1);
g_signal_conncet(...,(gpointer)2);
g_signal_connect(...,(gpointer)3);
然后在回调函数中(int)data == 1来判断
方法三:
利用焦点,在回调函数中
if(1 == gtk_widget_is_focus(btn1))
if(1 == gtk_widget_is_focus(btn2))
if(1 == gtk_widget_is_focus(btn3))
int func(GtkWidget *widget , gpointer data);
方法一:
添加gtk_widget_set_name(btn1 , "button1");然后在回调函数func中用gtk_widget_get_name(widget);来判断不同的button
方法二:
g_signal_connect(...,(gpointer)1);
g_signal_conncet(...,(gpointer)2);
g_signal_connect(...,(gpointer)3);
然后在回调函数中(int)data == 1来判断
方法三:
利用焦点,在回调函数中
if(1 == gtk_widget_is_focus(btn1))
if(1 == gtk_widget_is_focus(btn2))
if(1 == gtk_widget_is_focus(btn3))