python在gtk文本视图中搜索文本
我环顾四周,我认为这很简单,因为某种原因,我只找到了我需要的部分 我已经做了一个文本编辑器,我有一个框,它键入的内容会发现问题是它只会在文本视图中找到第一个单词,我无法让它搜索下一行。 就像文本文档中的查找函数一样python在gtk文本视图中搜索文本,python,search,text,gtk,textview,Python,Search,Text,Gtk,Textview,我环顾四周,我认为这很简单,因为某种原因,我只找到了我需要的部分 我已经做了一个文本编辑器,我有一个框,它键入的内容会发现问题是它只会在文本视图中找到第一个单词,我无法让它搜索下一行。 就像文本文档中的查找函数一样 def search(found): search_str = findentry.get_text() start_iter = textbuffer.get_start_iter() found = start_iter.forward_se
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。
如何使其向前和向后搜索。您使用的是
get\u start\u iter()
,它返回文本缓冲区中的第一个位置。很可能,您希望从match\u end
开始,这是单词在第一次搜索中结束的位置,也就是说,您应该从那里开始
假设您返回found
并再次调用该参数search
,则可以替换该行:
start_iter = textbuffer.get_start_iter()
借
第一次,或者当您想重置搜索时,您可以传递
found=None
很抱歉回复太晚。你的说明似乎很简单,但你能举一个更详细的例子吗。
start_iter = found[1] if found else textbuffer.get_start_iter()