从 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)
我正在开发一个 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)