在gtk textview中搜索文本

时间:2013-02-21 04:42:41

标签: python search text gtk textview

我环顾四周,我觉得这很简单,出于某种原因我只找到了我需要的部分。

我已经制作了一个文本编辑器,我有一个盒子,键入的内容会发现问题是它只会在文本视图中找到第一个单词,而我无法在下一行搜索它。 就像textdocument中的find函数一样。

def search(found):
    search_str = findentry.get_text()
    start_iter =  textbuffer.get_start_iter()
    found =       start_iter.forward_search(search_str,0, None) 
    if found:
      match_start,match_end = found
      textbuffer.select_range(match_start,match_end)

我以为我可以做一个接下来的搜索按钮,然后再次向前搜索添加内容和变量+1。 如何让它向前和向后搜索。

1 个答案:

答案 0 :(得分:0)

您正在使用get_start_iter(),它返回文本缓冲区中的第一个位置。也许,你想从match_end开始,这是第一次搜索中单词结束的位置,也就是说,你应该从那里开始。

假设您要返回found并使用该参数再次调用search,那么可以替换该行:

    start_iter =  textbuffer.get_start_iter()

通过

    start_iter = found[1] if found else textbuffer.get_start_iter()

第一次,或者只要您想重置搜索,就可以传递found=None