【发布时间】:2019-10-24 20:44:30
【问题描述】:
如何将文本打印(例如在标签中)到 GtkTextView? 对于 GtkLabel 和 GtkEntry 有 gtk_label_get_text() 和 gtk_entry_get_text(),但是对于 GtkTextView 呢?
【问题讨论】:
标签: gtk gtktextview
如何将文本打印(例如在标签中)到 GtkTextView? 对于 GtkLabel 和 GtkEntry 有 gtk_label_get_text() 和 gtk_entry_get_text(),但是对于 GtkTextView 呢?
【问题讨论】:
标签: gtk gtktextview
你可以:
GtkTextIter start, end;
GtkTextBuffer *buffer = gtk_text_view_get_buffer (text_view);
gchar *text;
gtk_text_buffer_get_bounds (buffer, &start, &end);
text = gtk_text_buffer_get_text (buffer, &start, &end, FALSE);
不再需要时不要忘记g_free (text)。
【讨论】:
gchar 与char 相同,所以你也可以使用char*。
根据 doublep 的回答,快速复制/粘贴:
char *get_text_of_textview(GtkWidget *text_view) {
GtkTextIter start, end;
GtkTextBuffer *buffer = gtk_text_view_get_buffer((GtkTextView *)text_view);
gchar *text;
gtk_text_buffer_get_bounds(buffer, &start, &end);
text = gtk_text_buffer_get_text(buffer, &start, &end, FALSE);
return text;
}
【讨论】:
只为来自 Google 的你们,这是在 python 中完成的方式:
def getText(textview):
buffer = textview.get_buffer()
startIter, endIter = buffer.get_bounds()
text = buffer.get_text(startIter, endIter, False)
return text
【讨论】: