所以我试图在PyGTK中编写一个富文本编辑器,最初使用Gourmet的旧版第三方脚本InteractivePangoBuffer来做这件事。虽然它工作正常,但仍然有很多错误,这使得它有时使用令人沮丧,所以我决定编写自己的利用文本标签。我让他们显示并且通常工作正常,但现在我一直在试图找出如何在保存时将它们导出到文件中。我已经看到其他人遇到了同样的问题,虽然我没有看到任何解决方案。我没有遇到任何函数(内置或其他)接近实际获取每段文本的起始和结束位置,并且应用了texttag,因此我可以使用它。
通过使用gtk.TextBuffer.get_iter_at_offset(),gtk.TextIter.get_offset(),gtk.TextIter.begins_tag()和gtk.TextIter遍历文本,我提出了理论上应该有效的一个想法。 ends_tag()用于检查每个字符以查看它是否开始或结束标记,如果是,则输入相应的代码。这会非常低效和缓慢,特别是在较大的文档上,所以我想知道是否有人有更好的解决方案?
答案 0 :(得分:0)
您可以使用gtk.TextIter.forward_to_tag_toggle()
。即循环遍历所有标签,并为每个标签扫描缓冲区以查找切换位置。