gpt4 book ai didi

gtk - 如何将 GTKTextBuffer 的内容保存到文件中

转载 作者:行者123 更新时间:2023-12-04 18:47:56 76 4
gpt4 key购买 nike

我在 Anjuta 的 Ubuntu 12.04 上用 C 和 GTK 编写一个程序。它是 nbc(乐高 NXT 编译器)的图形界面。我有一个 GTKTextView。现在我想将 textview 的内容保存到一个文件中,该文件可以由 GTKFileChooser 选择。现在我不知道如何从 TextView 获取文本并将其写入文件。我该怎么做呢?

最佳答案

首先,获取GtkTextBuffer来自 GtkTextView使用 gtk_text_view_get_buffer() .然后从缓冲区中获取开始和结束的 GtkTextIters 用于获取缓冲区的文本。最后,使用您选择的 API 将该文本写入文件,但是,我建议 Gio .这是我旧教程中的一个片段:

gtk_widget_set_sensitive (text_view, FALSE);
buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (editor->text_view));
gtk_text_buffer_get_start_iter (buffer, &start);
gtk_text_buffer_get_end_iter (buffer, &end);
text = gtk_text_buffer_get_text (buffer, &start, &end, FALSE);
gtk_text_buffer_set_modified (buffer, FALSE);
gtk_widget_set_sensitive (editor->text_view, TRUE);

/* set the contents of the file to the text from the buffer */
if (filename != NULL)
result = g_file_set_contents (filename, text, -1, &err);
else
result = g_file_set_contents (editor->filename, text, -1, &err);

if (result == FALSE)
{
/* error saving file, show message to user */
error_message (err->message);
g_error_free (err);
}

g_free (text);

查看以下 API 文档:
  • http://developer.gnome.org/gtk3/stable/GtkTextBuffer.html
  • http://developer.gnome.org/glib/stable/glib-File-Utilities.html
  • 关于gtk - 如何将 GTKTextBuffer 的内容保存到文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11088338/

    76 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com