Распечатать текст GtkTextView
Как я могу напечатать (например, на этикетке) текст в GtkTextView? Для GtkLabel и GtkEntry есть gtk_label_get_text() и gtk_entry_get_text(), но для GtkTextView?
2 ответа
Решение
Вы можете:
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)
когда больше не нужен.
Основываясь на ответе дупла, для быстрого копирования / вставки:
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