C - GtkTextBuffer 文本与 gchar 的标签
C - GtkTextBuffer text with tag to gchar
我目前正在学习 GTKTextTags
以及对 GtkTextView
和 GtkTextBuffer
的应用。我确实注意到了 this question,但并没有打算将我的数据导出到富文本文件,据我所知这是问题的主要目的
我有一个应用程序将 GtkTextBuffer
的内容存储到 SQLITE3
数据库的 TEXT
字段中。阅读 GtkTextWidget Overview and the documentation on GtkTextTag 后,我(错误地)理解标签系统的工作方式很像标记语言,例如 XML/HTML.
当我调用 gtk_text_buffer_get_text (...)
并将 gboolean include_hidden_chars
设置为 [=21 时,我印象深刻(在设置 &start
和 &end
GtkTextIters
之后) =] 我基本上会获得一个 gchar*
,它也将包含 GtkTextTags
,因此字符串可能看起来像 <b>some text</b>
(但显然 GtkTextTag
格式化程序不是 HTML)。我现在意识到情况并非如此。
问题:我把gtk_text_buffer_get_text(...)
得到的gchar*
存入数据库TEXT
字段。稍后,或者当我重新打开应用程序时,我想将这些数据重新加载到 GtkTextBuffer
中,并通过从我的数据库中检索相关的 TEXT
字段数据并使用 [=31= 设置文本来实现].在这一点上,我发现所有的格式标签都消失了,格式有点变得没有实际意义了。我希望能够做的是将 GtkTextBuffer
中的文本存储到数据库的 TEXT
字段中,并在重新加载时保留格式。
问:有没有办法将 GtkTextBuffer
中的文本和标签存储到 SQLITE3 数据库中,以便在将此文本重新加载到 GtkTextBuffer
格式时保留?
我考虑过在数据库中使用 BLOB
字段而不是 TEXT
字段,但不确定是否有更好的方法来实现我所追求的目标。
我建议使用 gtk_text_buffer_register_serialize_tagset()
and then gtk_text_buffer_serialize()
获取一个字节数组 (guint8[]
),稍后您可以使用 gtk_text_buffer_deserialize()
.
读回另一个文本缓冲区
我认为您必须使用 BLOB 字段而不是 TEXT,因为 gtk_text_buffer_serialize()
的 return 值是字节数组而不是字符串。
我目前正在学习 GTKTextTags
以及对 GtkTextView
和 GtkTextBuffer
的应用。我确实注意到了 this question,但并没有打算将我的数据导出到富文本文件,据我所知这是问题的主要目的
我有一个应用程序将 GtkTextBuffer
的内容存储到 SQLITE3
数据库的 TEXT
字段中。阅读 GtkTextWidget Overview and the documentation on GtkTextTag 后,我(错误地)理解标签系统的工作方式很像标记语言,例如 XML/HTML.
当我调用 gtk_text_buffer_get_text (...)
并将 gboolean include_hidden_chars
设置为 [=21 时,我印象深刻(在设置 &start
和 &end
GtkTextIters
之后) =] 我基本上会获得一个 gchar*
,它也将包含 GtkTextTags
,因此字符串可能看起来像 <b>some text</b>
(但显然 GtkTextTag
格式化程序不是 HTML)。我现在意识到情况并非如此。
问题:我把gtk_text_buffer_get_text(...)
得到的gchar*
存入数据库TEXT
字段。稍后,或者当我重新打开应用程序时,我想将这些数据重新加载到 GtkTextBuffer
中,并通过从我的数据库中检索相关的 TEXT
字段数据并使用 [=31= 设置文本来实现].在这一点上,我发现所有的格式标签都消失了,格式有点变得没有实际意义了。我希望能够做的是将 GtkTextBuffer
中的文本存储到数据库的 TEXT
字段中,并在重新加载时保留格式。
问:有没有办法将 GtkTextBuffer
中的文本和标签存储到 SQLITE3 数据库中,以便在将此文本重新加载到 GtkTextBuffer
格式时保留?
我考虑过在数据库中使用 BLOB
字段而不是 TEXT
字段,但不确定是否有更好的方法来实现我所追求的目标。
我建议使用 gtk_text_buffer_register_serialize_tagset()
and then gtk_text_buffer_serialize()
获取一个字节数组 (guint8[]
),稍后您可以使用 gtk_text_buffer_deserialize()
.
我认为您必须使用 BLOB 字段而不是 TEXT,因为 gtk_text_buffer_serialize()
的 return 值是字节数组而不是字符串。