打印GtkTextView的文本

打印GtkTextView的文本,gtk,gtktextview,Gtk,Gtktextview,如何将文本打印(例如在标签中)到GtkTextView中? 对于GtkLabel和GtkEntry,有gtk_label_get_text()和gtk_entry_get_text(),但对于GtkTextView?您可以: GtkTextIter start, end; GtkTextBuffer *buffer = gtk_text_view_get_buffer (text_view); gchar *text; gtk_text_buffer_get_bounds (buffer, &

如何将文本打印(例如在标签中)到GtkTextView中? 对于GtkLabel和GtkEntry,有gtk_label_get_text()和gtk_entry_get_text(),但对于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)

基于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;
}

对于谷歌的用户来说,python就是这样做的:

def getText(textview):
    buffer = textview.get_buffer()
    startIter, endIter = buffer.get_bounds()    
    text = buffer.get_text(startIter, endIter, False) 
    return text

gchar
char
相同,因此您也可以使用
char*