Найти текст в gtk.TextView - PullRequest
       10

Найти текст в gtk.TextView

4 голосов
/ 02 марта 2010

У меня есть gtk.Textview. Я хочу найти и выделить часть текста в этом TextView программно. У меня есть этот код, но он не работает правильно.

search_str =  self.text_to_find.get_text()
start_iter =  textbuffer.get_start_iter() 
match_start = textbuffer.get_start_iter() 
match_end =   textbuffer.get_end_iter() 
found =       start_iter.forward_search(search_str,0, None) 
if found: 
   textbuffer.select_range(match_start,match_end)

Если текст найден, то он выделяет весь текст в TextView, но мне нужно выбрать только найденный текст.

1 Ответ

4 голосов
/ 03 марта 2010

start_iter.forward_search возвращает кортеж начала и конца совпадений, поэтому в вашей переменной found есть и match_start, и match_end

это должно заставить работать:

search_str =  self.text_to_find.get_text()
start_iter =  textbuffer.get_start_iter()
# don't need these lines anymore
#match_start = textbuffer.get_start_iter() 
#match_end =   textbuffer.get_end_iter() 
found =       start_iter.forward_search(search_str,0, None) 
if found:
   match_start,match_end = found #add this line to get match_start and match_end
   textbuffer.select_range(match_start,match_end)
...