从 Gtk3 TextView/TextBuffer 获取文本,格式标签包含在 Python 中

Get text from Gtk3 TextView/TextBuffer with formatting tags included in Python

我正在开发一个 Python 3 项目,该项目使用 Gtk3 TextView/TextBuffer 来获取用户的输入,我已经让它工作到可以让用户输入 rich文本并能够将其格式化为其中的 Bold/Italic/Underline/Combination。

但是,我一直在尝试弄清楚如何从包含这些标志的 TextBuffer 中获取文本,这样我就可以在需要时使用格式化标志将文本转换为正确格式的 HTML到.

调用 textbuffer.get_text(start, end, True) 只是 returns 没有任何标志的文本。

这是the code and the editor.glade file。将它们保存在同一目录中。

如何获取包含标志的文本?或者,有没有一种方法可以自动将用户输入的格式设置为 HTML 在另一个变量中自动?

这并不容易。 Here 是我曾经为 RTF 输出做同样事情而编写的一些代码的 link。您或许可以调整它以产生 HTML 输出。如果您设法这样做,我可能会将其集成到该库的后继者中。

或者,如果你比上面更喜欢文本处理,你可以导出 GtkTextBuffer 内部序列化格式的富文本,稍后自己将其转换为 HTML:

format = textbuffer.register_serialize_tagset('my-tagset')
exported = textbuffer.serialize(textbuffer, format, start, end)