glade编程中指针传递

软件和网站开发以及相关技术探讨
回复
weihua2008
帖子: 448
注册时间: 2008-07-10 15:08

glade编程中指针传递

#1

帖子 weihua2008 » 2008-10-28 10:03

在glade中想用线程函数
void *thread_fun(void* pParm)
{
while(1){
GtkWidget* entry=(GtkWidget*)pParm;
static GtkTextBuffer *recv_show;
recv_show=gtk_text_view_get_buffer(GTK_TEXT_VIEW(entry));
GtkTextIter iter_end;
gtk_text_buffer_get_end_iter(recv_show,&iter_end);
gtk_text_buffer_insert(recv_show,&iter_end,"nihao",-1);
}
return (void*)0;
}
gboolean
on_dialog_map_event (GtkWidget *widget,
GdkEvent *event,
gpointer user_data)
{
GtkWidget* entry=lookup_widget(GTK_WIDGET(widget),"textview_show");
pthread_t thread_id;
pthread_create(&thread_id,NULL,thread_fun,&entry);
return FALSE;
}
on_dialog_map_event()函数响应窗口dialog 的map_event信号,textview_show是dialog窗口中的一个textview,
该线程函数主要就是想在dialog窗口被map的时候开启一个线程,在其上面的一个textview中不断插入字符串“你好”
,编译没有错误,但是运行的时候,textview中不能显示字符串“你好”,终端有错误提示:
(chat:5769): GLib-GObject-WARNING **: invalid uninstantiatable type `(null)' in cast to `GtkTextView'

(chat:5769): Gtk-CRITICAL **: gtk_text_view_get_buffer: assertion `GTK_IS_TEXT_VIEW (text_view)' failed

(chat:5769): Gtk-CRITICAL **: gtk_text_buffer_get_end_iter: assertion `GTK_IS_TEXT_BUFFER (buffer)' failed

(chat:5769): Gtk-CRITICAL **: gtk_text_buffer_insert: assertion `GTK_IS_TEXT_BUFFER (buffer)' failed


哪位高手给指点一下,谢谢!
回复