LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: wide288

text view 相关,文本框。

[复制链接]
 楼主| 发表于 2004-7-1 13:00:48 | 显示全部楼层

  1. void
  2. on_button1_clicked                     (GtkButton       *button,
  3.                                         gpointer         user_data)
  4. {
  5. //清空发送文本框
  6.         gchar *str = "\0";
  7.       GtkWidget *w = NULL;
  8.         gpointer tv2;
  9.       w = gtk_widget_get_toplevel(GTK_WIDGET(button));
  10.       if (GTK_WIDGET_TOPLEVEL (w))
  11.       {
  12.                 tv2 = g_object_get_data (GTK_OBJECT(w), "textview2");
  13.             if (tv2 != NULL)
  14.             {
  15.                     gtk_text_buffer_set_text(gtk_text_view_get_buffer(GTK_TEXT_VIEW(tv2)), str, strlen(str));
  16.             }
  17.       }
  18. }
复制代码

还是有警告信息。弄掉才好。
发表于 2004-7-2 16:28:53 | 显示全部楼层

... ...

我试了我试了一下你的代码,无法正常工作。
清空文本(clear   textbuffer )有更好的办法。

GtkTextIter start ,end ;
GtkTextBuffer *buffer=gtk_text_view_get_buffer(textView ) ;
gtk_text_buffer_get_bounds (buffer, &start, &end);
gtk_text_buffer_delete(buffer,&start,&end );

希望相互帮助。
 楼主| 发表于 2004-7-2 17:22:22 | 显示全部楼层
211.92.88.40/~wide288/study/gtk-sct.tar
从这里可以下载到可以编译的代码。
make
就可以了。
callback.c 里改主要代码。

ps. 关于文本框 我有很多不懂。你的方法我会试的。谢谢。
 楼主| 发表于 2004-7-3 13:01:56 | 显示全部楼层
在 interface.c 文件中

  1.   g_signal_connect ((gpointer) button2, "clicked",
  2.                     G_CALLBACK (on_button2_clicked),
  3.                     (gpointer)textview2);
复制代码

在 callback.c 文件中。

  1. void
  2. on_button2_clicked                     (GtkButton       *button,
  3.                                         gpointer         user_data)
  4. {
  5. //发送文本
  6. /*        gchar *str = "\0";
  7.       GtkWidget *w = NULL;
  8.         GtkTextBuffer *buffer;
  9.         gpointer tv1;
  10.         GtkTextIter start ,end,iter,iter2;*/
  11. //***********************
  12. GtkTextBuffer *textbuffer = NULL;
  13. g_assert(GTK_IS_TEXT_VIEW (user_data));
  14. textbuffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (user_data));
  15. gtk_text_buffer_delete_selection(textbuffer, TRUE, TRUE);
  16. //gtk_text_buffer_set_text(gtk_text_view_get_buffer(GTK_TEXT_VIEW(textbuffer)), str, strlen(str));
  17. //**********************
  18. /*      w = gtk_widget_get_toplevel(GTK_WIDGET(button));
  19.       if (GTK_WIDGET_TOPLEVEL (w))
  20.       {
  21.                 tv1 = g_object_get_data (GTK_OBJECT(w), "textview1");
  22.             if (tv1 != NULL)
  23.             {
  24.                         str = gtk_text_view_get_buffer(GTK_TEXT_VIEW(tv1));
  25. //                        gtk_text_buffer_get_bounds(buffer, &start, &end);
  26. //                        str = gtk_text_buffer_get_text(buffer,&iter,&iter2,-1);
  27.                         printf("button2: %s end\n", str);
  28. //                    gtk_text_buffer_set_text(gtk_text_view_get_buffer(GTK_TEXT_VIEW(tv1)), str, strlen(str));
  29.             }
  30.       }
  31. */
  32. /*GtkTextIter start ,end,iter,iter2;
  33. GtkTextView *textView = lookup_widget( GTK_WIDGET(s_tv2),"textview2" );
  34. GtkTextBuffer *buffer = gtk_text_view_get_buffer(textView);
  35. gtk_text_buffer_get_bounds(buffer, &start, &end);
  36. char * str1 = gtk_text_buffer_get_text(buffer,&iter,&iter2,-1);
  37. printf("button2: %s end\n", str1);*/
  38. }
复制代码

真是乱啊。调用文本框的文本,加上写入。两个功能?
暂时只用了星号内的代码,不过不管用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表