6

How can I print (for example in a label) the text into a GtkTextView? For GtkLabel and GtkEntry there are gtk_label_get_text() and gtk_entry_get_text(), but for GtkTextView?

skaffman
  • 398,947
  • 96
  • 818
  • 769
stdio
  • 435
  • 2
  • 7
  • 18

3 Answers3

5

Based on doublep's answer, for quick copy/paste:

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;
}
kungfooman
  • 4,473
  • 1
  • 44
  • 33
4

You can:

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);

Don't forget to g_free (text) when no longer needed.

  • 1
    `gchar` is the same as `char`, so you can use `char*` just as well. –  May 14 '10 at 19:49
2

Just for you people from Google, this is the way it's done in python:

def getText(textview):
    buffer = textview.get_buffer()
    startIter, endIter = buffer.get_bounds()    
    text = buffer.get_text(startIter, endIter, False) 
    return text
Standard
  • 1,450
  • 17
  • 35