2010-05-07 78 views
1

我希望我的GtkTextView在長字符串的末尾只顯示一定數量的字符。這是可能的,我該怎麼做?如何在C中設置gtk_text_view的緩衝區限制?

+0

我查看了GtkTextBuffer的GTK文檔我找不到任何有關緩衝區大小或緩衝區大小限制的參考。你爲什麼想這個? – 2010-05-07 19:37:37

+0

因爲在我的應用程序中,GtkTextView將充滿越來越多的文本信息,如果沒有限制,我懷疑它會崩潰。 – httpinterpret 2010-05-08 04:21:31

回答

1

連接到insert-text信號GtkTextBuffer。在你的回調中,獲取文本的長度。如果超過限制的時間越長,得到兩個開始iters,並通過人物的量移動他們的一個前要刪除:

GtkTextIter range_start, range_end; 
gtk_text_buffer_get_start_iter(buffer, &range_start); 
range_end = range_start; 
gtk_text_iter_forward_chars(&range_end, num_chars); 
gtk_text_buffer_delete(buffer, &range_start, &range_end); 

這就是說,你必須把文本LOTGtkTextBuffer中崩潰應用程序。

+0

LOT =幾個千兆字節? – httpinterpret 2010-05-08 10:20:08

+0

如果您要處理幾個千兆字節,爲什麼您甚至使用文本視圖?沒有用戶會滾動瀏覽千兆字節的文本。沒有用戶甚至會活到足夠長的時間!也許你需要過濾數據或直接寫入磁盤文件。 – ptomato 2010-05-08 10:24:27