因此,我尝试在 PyGTK 中编写富文本编辑器,并且最初使用 Gourmet 的较旧的第三方脚本 InteractivePangoBuffer 来执行此操作。虽然它工作正常,但仍然存在很多错误,有时使用起来令人沮丧,所以我决定使用文本标签编写自己的代码。我已经让它们显示并且通常工作正常,但现在我一直在试图弄清楚如何在保存时将它们导出到文件中。我已经看到其他人遇到了与我遇到的相同问题,尽管我还没有看到任何解决方案。我还没有遇到任何函数(内置或其他)接近于实际获取每段文本的开始和结束位置并应用了文本标签以便我可以使用它。
我想出了一个理论上应该可行的想法,通过使用 gtk.TextBuffer.get_iter_at_offset()、gtk.TextIter.get_offset()、gtk.TextIter.begins_tag() 和 gtk.TextIter 遍历文本。 ends_tag() 以检查每个字符以查看它是否开始或结束标记,如果是,则放置适当的代码。然而,这将非常低效和缓慢,尤其是在较大的文档上,所以我想知道是否有人有更好的解决方案?
请您参考如下方法:
您或许可以使用 gtk.TextIter.forward_to_tag_toggle()。 IE。遍历你拥有的所有标签,并为每个标签扫描缓冲区以找到它被切换的位置。
