0

我有一个带有文本缓冲区的文本视图。我在文本缓冲区中添加了许多标签

buffer.get_tag_table().add(tag)

所以我想知道是否有一种方法可以从文本视图中获取所有文本并根据它具有的标签对其进行拆分

我正在使用 gtk 2 顺便说一句

谢谢

4

1 回答 1

0

从缓冲区开始处的迭代器开始,并在缓冲区中移动it.forward_to_tag_toggle()。在每一点,it.get_tags()将为您提供适用于当前文本块的标签列表,并buf.get_text(it, next_it)为您提供文本本身:

def split(buf):
    it = buf.get_start_iter()
    while not it.is_end():
        nextpos = it.copy()
        nextpos.forward_to_tag_toggle(None)
        yield buf.get_text(it, nextpos), it.get_tags()
        it = nextpos
于 2012-10-07T12:09:59.140 回答