首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

gtk_entry_get_text出现段异常

2013-03-27 
gtk_entry_get_text出现段错误小弟初学gtk,我用的是 gtk+-2.0对一个entry控件键入 enter时相应回调函数回

gtk_entry_get_text出现段错误
小弟初学gtk,我用的是 gtk+-2.0
对一个entry控件键入 enter时相应回调函数
回调函数如下


133 /* when you press the Enter key int entry_localwd call this function*/
134 void* response_entry_enter(GtkWidget *widget, GdkEvent *event, gpointer data)
135 {
136         GtkEntry * value = data;  
137         char path[100];
138         strcpy(path,gtk_entry_get_text(GTK_ENTRY(widget)));
139         printf("%s\n",path);      
     }


信号关联函数如下

 g_signal_connect(entry_localwd,"activate",G_CALLBACK(response_entry_enter),&entry_localwd);


当我将 138行的 widget 改为 value(即entry_localwd)时出现段错误,但是用widget,未出现段错误
其实这是测试代码,原来给  g_signal_connect()传的是一个结构体变量,entry_localwd也是成员变量之一,
在赋值是 也是在gtk_entry_get_text(GTK_ENTRY(data->entry))出现段错误,其他的成员变量赋值未出现问题,不知到为什么?
懂得麻烦讲解一下,在此谢过! gtk signal callback
[解决办法]
请楼主贴出代码
[解决办法]
你那个是要传自己吗?  没有必要吧,回调函数response_entry_enter中第一个参数就是信号源的控件了,有它不就够了吗?

可以gdb里面看下,传过去的最后一个参数可能解析有问题,设个断点看下它的值。

g_signal_connect(entry_localwd,"activate",G_CALLBACK(response_entry_enter),&entry_localwd);
是否要改为: g_signal_connect((G_OBJECT)entry_localwd,"activate",G_CALLBACK(response_entry_enter),(gpointer)entry_localwd);

最好是把你的问题整理出一个简单的可复现的demo程序,放下源码和编译参数之类的。

热点排行