0

私は周りを見回しましたが、これは本当に簡単だと思います。何らかの理由で、必要なものの一部しか見つかりませんでした。

私はテキストエディタを作成しましたが、入力したものが問題を見つけるボックスがあり、テキストビューの最初の単語しか見つからず、次の行を検索できません。テキストドキュメントの検索機能のように。

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を追加して再度前方検索できると思いました。前後に検索するにはどうすればよいですか。

4

1 に答える 1

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

于 2013-02-21T06:34:10.123 に答える