2017-11-23 10 views
-1

ボタンを押してcsvファイルを検索して入力した名前と同じ名前の項目から得点を見つけるまで、ラベルを空にしたい名。ラベルに表示される値は、現在のところ最初の値のみがリストに表示されます(ありがとうございます)。python tkinterの空白のラベルを複数行のラベルに変更する方法

entSearch = Entry(window) 
lblSearch = tkinter.Label(window, text="Search for your previous scores!") 
btnSearch = Button(window, text="Search!",command=search) 
lblSearched = tkinter.Label(window, text="") 

def search(): 
file1=open("scores.csv","r") 
csvreader=csv.reader(file1) 
for x in csvreader: 
    if entSearch.get() == x[0]: 
     results = x[0]+" "+x[1]+"\n" 
    lblSearched.config(text=results) 
+2

最初にすべてのテキストを含む1つの文字列を作成し、後でそれを 'Label'に入れます。または、 'lblSearched ['text'] + = results'を使用してください。 – furas

+0

BTW:今日も同様の質問がありました:[ファイルのテキストとtkinter pythonのエントリを使ってラベルにテキストを追加する方法](https://stackoverflow.com/questions/47462282/tkinter-pytでのファイルからのテキストを使用したテキストへのテキストの追加方法 – furas

答えて

0

あなたが現在では

searched_text = entSearch.get() 

all_lines = [] 

for row in csvreader: 
    if row[0] == searched_text: 
     # WITHOUT '\n' 
     all_lines.append("{} {}".format(row[0], row[1])) 

full_text = '\n'.join(all_lines) 
lblSearched.config(text=full_text) 

を(それが最後の行の後\nを追加しません)1つのテキスト内のすべてを接続して、後で

searched_text = entSearch.get() 

full_text = '' 

for row in csvreader: 
    if row[0] == searched_text: 
     # with '\n' 
     full_text += "{} {}\n".format(row[0], row[1]) 

lblSearched.config(text=full_text) 

またはjoin()Labelにそれを置くことができます使用できるコード

lblSearched['text'] += results 

または

lblSearched.config(text=lblSearched.cget('text') + results) 

それが読みにくくなります。

関連する問題