我有一个带文本缓冲区的textview。 我已经使用
向文本缓冲区添加了许多标签buffer.get_tag_table().add(tag)
所以我想知道是否有办法从文本视图中获取所有文本并根据它具有的标记将其拆分
我正在使用gtk 2 btw
感谢
答案 0 :(得分: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