2016-01-17 91 views
-1

由於某些原因,我在python中沒有更新我的標籤,當我在輸入框中輸入詳細信息時,它應該更新它。感謝您的幫助Python標籤不更新?

import tkinter 
gui = tkinter.Tk() 

num1e = tkinter.IntVar() 
num2e = tkinter.IntVar() 
num3e = tkinter.IntVar() 
num4e = tkinter.IntVar() 
num5e = tkinter.IntVar() 
num6e = tkinter.IntVar() 
num7e = tkinter.IntVar() 

numout = tkinter.IntVar() 

def Find(): 
    numout.set = num1e 

gui.geometry("450x450+500+300") 

num1 = tkinter.Entry(gui, bd = 5, width = 1, textvariable = num1e).pack() 
num2 = tkinter.Entry(gui, bd = 5, width = 1, textvariable = num2e).pack() 
num3 = tkinter.Entry(gui, bd = 5, width = 1, textvariable = num3e).pack() 
num4 = tkinter.Entry(gui, bd = 5, width = 1, textvariable = num4e).pack() 
num5 = tkinter.Entry(gui, bd = 5, width = 1, textvariable = num5e).pack() 
num6 = tkinter.Entry(gui, bd = 5, width = 1, textvariable = num6e).pack() 
num7 = tkinter.Entry(gui, bd = 5, width = 1, textvariable = num7e).pack() 

label = tkinter.Label(gui, textvariable = numout).pack() 

Sb = tkinter.Button(gui, text ="Find 8th", command = Find).pack() 

gui.mainloop() 

回答

1

要設置一個IntVar的值或者StringVar必須調用set方法,並給予新的值作爲參數。要從獲得值其中一個變量,您必須調用get方法。

例如,將其設定爲在num1輸入小工具,你會做這樣的值:

numout.set(num1e.get()) 

需要注意的是,除非你使用的變量跟蹤,全部採用IntVar S的是不必要的 - 您可以直接設置並獲取來自輸入小部件和標籤的值(假設您正確保存了對小部件的引用):

num1 = tkinter.Entry(gui, bd = 5, width = 1, textvariable = num1e) 
num2 = tkinter.Entry(...) 
... 
label = tkinter.Label(...) 
num1.pack() 
num2.pack() 
... 
label.pack() 
... 
num1_value = num1.get() 
label.configure(text=num1_value)