2016-07-18 16 views
0

Python Tkinterでは、search関数をテキストウィジェットに配置して、指定されたリストの外のテキストのみを検索する方法はありますか?Tkinter Text widget:リスト外のものを検索

from tkinter import * 
root = Tk() 

text = Text(root) 
text.pack() 

def searchForTextOutsideList(event): 
    list=["bacon","ham","sandwich"] 
    ... # How can I search the text widget for only words not in the list 

root.mainloop() 

リストにない単語だけをテキストウィジェットで検索するにはどうすればよいですか。どんな助けも高く評価されます!

答えて

1

あなたは正確に何をしたいのか分かりません。リストに含まれていない単語だけを取得したい場合は、text.get("1.0","end")を使ってテキストウィジェットのコンテンツを取得し、それを単語に分割して各単語がリストに含まれているかどうかを確認してください。

編集:あなたがいないリスト内の各単語の最初の文字のインデックスをしたい場合は、私が先頭に空白が決してないことを、この関数で想定している

def indices(word_list): 
    """ return the index of the first letter of each word 
     in the text widget which is not in word_list """ 
    lines = text.get("1.0", "end").split("\n") 
    index = [] 
    for i, line in enumerate(lines): 
     words = line.split() 
     if words: 
      if not words[0] in word_list: 
       index.append("%i.0" % (i+1)) 
      for j in range(1, len(words)): 
       if not words[j] in word_list: 
        index.append("%i.%i" % (i+1, 1 + len(" ".join(words[:j])))) 
    return index 

ような何かを行うことができます行の

+1

最初のインデックスは '' 1.0''ではなく '0.0'でなければなりません。行番号は1(1)で始まります。 –

+0

私はそれがエラーを起こさないので気づいたことがなかった。 –

+0

エラーは発生しませんが、依然として正しくありません。 Tkinterは悪い指数を少し許していますが、できるだけ適切な指数を与えるように努力する必要があります。 –

関連する問題