四、文本框缓冲区文本的获得和设置
我们可以用函数gtk_text_buffer_get_text来获得文本框缓冲区的文本,用gtk_text_buffer_set_text来设置它。
10.
名称:: | gtk_text_buffer_get_text |
功能: | 文本框缓冲区文本的获得 |
头文件: | #include <gtk/gtk.h> |
函数原形: | gchar* gtk_text_buffer_get_text(GtkTextBuffer *buffer,const GtkTextIter *start,const GtkTextIter *end,gboolean include_hidden_chars); |
参数: | buffer 文本构件的缓冲区 start 文本框文字开始位置的iter end 文本框文字结束位置的iter include_hidden_chars |
返回值: | 文本框缓冲区文本 |
gtk_text_buffer_get_text返回文本框缓冲区文本,include_hidden_chars设置是否包含看不见的文本。
下面是文本框缓冲区文本的获得的程序例子:
#include <gtk/gtk.h>
GtkWidget *text_view; GtkTextBuffer *buffer; GtkTextIter *Iter;
void button_event(GtkWidget *widget,gpointer *data);
int main(int argc,char *argv[ ]) { GtkWidget *window; GtkWidget *button; GtkWidget *box;
gtk_init(&argc,&argv); window=gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_widget_set_size_request(window,200,150); g_signal_connect(GTK_OBJECT(window),”destroy”,G_CALLBACK(gtk_main_quit),NULL);
box=gtk_vbox_new(FALSE,0); gtk_widget_show(box);
text_view=gtk_text_view_new();/*创建文本框构件*/ gtk_widget_set_request(text_view,200,120); gtk_container_add(GTK_CONTAINER(window),box); gtk_box_pack_start(GTK_BOX(box),text_view,FALSE,FALSE,0); buffer=gtk_text_view_get_buffer(GTK_TEXT_VIEW(text_view)); gtk_widget_show(text_view);
button=gtk_button_new_with_label(“确定”); gtk_box_pack_start(GTK_BOX(box),button,FALSE,FALSE,5); gtk_signal_connect(GTK_OBJECT(button),”clicked”,GTK_SIGNAL_FUNC(button_event),NULL);
gtk_widget_show(window); gtk_main(); }
void button_event(GtkWidget *widget,gpointer *data) { gchar *text; GtkTextIter start,end;
gtk_text_buffer_get_bounds(GTK_TEXT_BUFFER(buffer),&start,&end);/*获得缓冲区开始和结束位置的Iter*/
const GtkTextIter s=start,e=end; text=gtk_text_buffer_get_text(GTK_TEXT_BUFFER(buffer),&s,&e,FALSE);/*获得文本框缓冲区文本*/ g_print(“%s/n”,text); } |
当用户点击确定按钮,文本框的内容将会打印到屏幕上。
11.
名称:: | gtk_text_buffer_set_text |
功能: | 文本框缓冲区文本的设置 |
头文件: | #include <gtk/gtk.h> |
函数原形: | void gtk_text_buffer_set_text(GtkTextBuffer *buffer,const gchar *text, gint len); |
参数: | buffer 文本构件的缓冲区 start 文本框文字开始位置的iter end 文本框文字结束位置的iter text 要设置的文本 |
返回值: | 无 |
gtk_text_buffer_set_text会删除原有缓冲区内容,然后用text的内容代替。