2016-06-14 49 views
-2

我正在試圖創建一個程序,在這裏您將一個單詞放在一個框中,按添加,然後這個單詞進入一個列表,該列表也顯示在右側。當我按下前進按鈕時,列表中的第一件事就會被刪除。問題是當我按下按鈕/編輯列表時,我無法獲得標籤更新...無法讓我的標籤在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() 

如果是這樣的: 您創建一個列表,然後使用附加功能將項目添加到它。其餘的幾乎是正確的。