2016-06-14 32 views
-2

単語をボックスに入れてaddを押すと、この単語がリストに表示され、右側にも表示されます。フォワードボタンを押すと、リストの最初のものが削除されます。問題は私がボタンを押して/リストを編集すると、更新するラベルを得ることができません...tkinterでラベルを更新することができません

Thxは事前に。

from tkinter import * 

root = Tk() 
root.title('Speakers List') 
root.minsize(800, 600) 

speakers = ['none'] 
spe = speakers[0] 

def add(): 
    if spe == 'none': 
     speakers.insert(0, [s]) 
     e.delete(0, END) 
     spe.config(text=speakers[0]) 
    else: 
     speakers[-2] = [s] 
     e.delete(0, END) 
     spe.config(text=speakers[0]) 
    return 


def forward(): 
    if len(speakers) is 0: 
     return 
    else: 
     del speakers[0] 
     spe.config(text=speakers[0]) 
    return 


entry = StringVar() 
e = Entry(root, width=30, font=("Arial", 20), textvariable=entry) 
e.grid(row=0, sticky=W) 
s = e.get() 

button1 = Button(root, padx=10, pady=10, bd=5, text='Add', fg='black', command=add) 
button1.grid(row=0, column=1) 

button2 = Button(root, padx=10, pady=10, bd=5, text='Next', fg='black', command=forward) 
button2.grid(row=1, column=1) 

n = Label(root, font=("Arial", 35), bd=2, text=spe) 
n.grid(row=1, sticky=W) 

listdisplay = Label(root, font=('Arial', 20), text=speakers) 
listdisplay.grid(row=0, column=10) 


root.mainloop() 
+0

ボタンをクリックすると、ラベルの 'text'属性は更新されません。 'spe.config(text = speakers [0])'でしようとしているようですが、 'spe'は文字列であり、tkinterウィジェットではありません。 – RobertR

答えて

0

これはあなたが探していたものですか?

from tkinter import * 

root = Tk() 
root.title('Speakers List') 
root.minsize(800, 600) 

speakers = ['50'] 
spe = speakers[0] 

def add(): 
    entry=e.get() 
    speakers.append(entry) 
    listdisplay.config(text=speakers) 
    return 


def forward(): 
    if len(speakers) is 0: 
     return 
    else: 
     del speakers[0] 
    listdisplay.config(text=speakers) 

    spe=speakers[0] 
    n.config(text=spe) 
    return 


entry = StringVar() 
e = Entry(root, width=30, font=("Arial", 20), textvariable=entry) 
e.grid(row=0, sticky=W) 
s = e.get() 

button1 = Button(root, padx=10, pady=10, bd=5, text='Add', fg='black',command=add) 
button1.grid(row=0, column=1) 

button2 = Button(root, padx=10, pady=10, bd=5, text='Next', fg='black',command=forward) 
button2.grid(row=1, column=1) 

n = Label(root, font=("Arial", 35), bd=2, text=spe) 
n.grid(row=1, sticky=W) 

listdisplay = Label(root, font=('Arial', 20), text=speakers) 
listdisplay.grid(row=0, column=10) 


root.mainloop() 

その場合: あなたがリストを作成し、あなたがそれに項目を追加するためにアペンド機能を使用しています。残りはかなり大丈夫でした。

関連する問題