GTK中,把gtktextview(文本框)放入gktscrolled(滚动窗口)后,如何实现自动滚屏

来源:百度知道 编辑:UC知道 时间:2024/06/04 08:08:55
如下简单的代码,但存在一个问题:输入字符太多后,光标将超出窗口。怎样才能实现光标总在窗口内,或者字符到底后自动换行等。也就是说怎样才能实现我们日常的文本操作那样的形式。
#include <gtk/gtk.h>
int main(int argc,char *argv[ ])
{
GtkWidget *window;
GtkWidget *scrolled;
GtkWidget *text;

gtk_init(&argc,&argv);
window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_set_size_request(window,200,200);
gtk_signal_connect(GTK_OBJECT(window),"destroy",G_CALLBACK(gtk_main_quit),NULL);

scrolled=gtk_scrolled_window_new(NULL,NULL); /*创建滚动窗口构件*/
gtk_container_add(GTK_CONTAINER(window),scrolled);/*将滚动窗口构件加入窗体*/
gtk_widget_show(scrolled);/*显示滚动窗口构件*/

text=gtk_text_view_new();/*创建文本视图构件*/
gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrolled),text);/*将文本视图构件加入滚动窗口*/

gtk_widget_show_all(window);

gtk_main();
return 0;
}

gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrolled),text);/*将文本视图构件加入滚动窗口*/

你为什么要用这个函数加组件?

把这句替换为以下语句就解决问题了
gtk_container_add(GTK_CONTAINER(scrolled), text);

你用的那个接口会保存视点信息,推荐你仔细看一看devhelp