gpt4 book ai didi

sqlite - C - GtkTextBuffer 文本与 gchar 的标签

转载 作者:行者123 更新时间:2023-12-03 17:13:45 25 4
gpt4 key购买 nike

我目前正在学习 GTKTextTags和申请 GtkTextViewGtkTextBuffer .我确实注意到了this question但不打算将我的数据导出到富文本文件,我认为这是问题的主要目的

我有一个存储 GtkTextBuffer 内容的应用程序进入 TEXT领域SQLITE3数据库。阅读了 GtkTextWidget关于 GtkTextTag 的概述和文档,我(错误地)理解标签系统的工作方式很像 XML/HTML 等标记语言。

当我调用 &start 时,我的印象是(在设置了 &endGtkTextIters gtk_text_buffer_get_text (...) 之后)与 gboolean include_hidden_chars设置为 TRUE我基本上会得到一个 gchar*这还包括 GtkTextTags所以字符串可能看起来像 <b>some text</b> (但显然使用 GtkTextTag 格式化程序而不是 HTML)。我现在意识到情况并非如此。

问题: 我存储了 gchar*gtk_text_buffer_get_text(...)获得进入数据库 TEXT field 。稍后,或者当我重新打开应用程序时,我想将此数据重新加载到 GtkTextBuffer 中。并通过检索相关的 TEXT 来做到这一点我的数据库中的字段数据并使用 gtk_text_buffer_set_text (...) 设置文本.在这一点上,我发现所有的格式标签都消失了,格式有点变得没有实际意义了。我希望能够做的是存储来自 GtkTextBuffer 的文本。进入TEXT数据库的字段以及重新加载时保留格式。

问:有没有一种方法可以存储来自 GtkTextBuffer 的文本和标签?到 SQLITE3 数据库中,以便在将此文本重新加载到 GtkTextBuffer 时格式保留?

我考虑过使用 BLOB字段而不是 TEXT数据库中的字段,但不确定是否有更好的方法来实现我所追求的目标。

最佳答案

我建议使用 gtk_text_buffer_register_serialize_tagset()然后 gtk_text_buffer_serialize()获取一个字节数组 (guint8[]),稍后您可以使用 gtk_text_buffer_deserialize() 将其读回另一个文本缓冲区。

我认为您必须使用 BLOB 字段而不是 TEXT,因为 gtk_text_buffer_serialize() 的返回值是字节数组而不是字符串。

关于sqlite - C - GtkTextBuffer 文本与 gchar 的标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32006961/

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