2016-05-12 1 views
1

名前をファイルに検索し、関連するすべての名前を返すためのコードで助けが必要です。プロンプトではリストが正しく印刷されますが、Tkinter GUIでは名前を含むラベルが最後の値を繰り返します。Tkinter(Python)内のForループから別のラベルを返す

例:ルイスフェルナンド検索 - >プロンプトで

:GUIで

[email protected]:~$ python teka.py 
L  31  LUIZ FERNANDO GONÇALVES 

L16  9  LUIZ FERNANDO SOUZA CARVALHO 

L18  3  LUIZ FERNANDO CAVALHEIRO 

L18  4  LUIZ FERNANDO S. DA SILVA 

L19  10  LUIZ FERNANDO BELUZZO DA SILVA 

GUI image printscreen


コード:

from Tkinter import * 

#search func 
def busca(): 
db = open('HD-Secretaria/morto.csv','r') #database file for name searching 
x = entrada.get().upper() 

for lines in db: 
    if x in lines: 
     print lines 
     result.set(lines) 
     Label(app, textvariable = result).pack() 


#create window 
app = Tk() 
app.title('Gerenciador de arquivo morto') 
app.geometry('500x400+200+100') 



Label(app, text = 'Gerenciador de arquivo morto').pack() #title label 
Label(app, text = 'Nome do cidadao').pack() #text label 
entrada = Entry(app) 
entrada.pack() #textbox 
Button(app, text = 'Buscar', command = busca).pack() #button 

#result label 
result = StringVar() 
result.set('') 

l = Label(app, textvariable = result).pack() 


app.mainloop() 

プロンプトのようにデータを再送信するにはGUIが必要です。

助け、私たちは

答えて

1

あなたの間違いはあなたがすべてのラベルのための単一の変数を使用している、そして単一の変数は、単一の文字列を保持することができるということですXD。

textvariableオプションはまったく必要ありません。ただ、ハードコードラベルの文字列:

Label(app, text=" ".join(lines)) 
+0

おかげブライアンあなたが本当に解決してきたmyproblem、多くの感謝:linesが実際にリストされている場合

Label(app, text=lines) 

あるいは、 – bruno

関連する問題