2014-05-24 23 views
1

下面的代碼片段通過表單從用戶接收輸入,然後返回乘以2的輸入。我想要做的是,當用戶鍵入一個數字(例如5)並在鍵盤上按下「Enter」鍵或點擊「Calculate」按鈕,他輸入數字「5」的地方也應該顯示10,除了下面的地方。通常情況下,表單會保留輸入的數字,但正下方的位置會更新並顯示10(讓我們假設您輸入了5)在條目中更新文本(Tkinter)

我怎樣才能更新表格的位置?

(請讓我知道,如果我的問題是不清楚,這樣我就可以更好地解釋自己。)

from tkinter import * 

def multiplier(*args): 
    try: 
     value = float(ment.get()) 
     result.set(value * 2) 
    except ValueError: 
     pass 

mGui = Tk() 
mGui.geometry("300x300+300+300") 

ment = StringVar() 
result = StringVar() 

mbutton = Button (mGui, text = "Calculate", command = multiplier) 
mbutton.pack() 

mEntry = Entry(mGui, textvariable = ment, text="bebe") 
mEntry.pack() 

mresult = Label(mGui, textvariable = result) 
mresult.pack() 

回答

1

您可以使用Entrydeleteinsert方法。

from tkinter import * 

def multiplier(*args): 
    try: 
     value = float(ment.get()) 
     res = value *2 
     result.set(res) 
     mEntry.delete(0, END) #deletes the current value 
     mEntry.insert(0, res) #inserts new value assigned by 2nd parameter 

    except ValueError: 
     pass 

mGui = Tk() 
mGui.geometry("300x300+300+300") 

ment = StringVar() 
result = StringVar() 

mbutton = Button (mGui, text = "Calculate", command = multiplier) 
mbutton.pack() 

mEntry = Entry(mGui, textvariable = ment, text="bebe") 
mEntry.pack() 

mresult = Label(mGui, textvariable = result) 
mresult.pack() 
2

StringVar是你通過set方法,你在multiplier功能做哪些更新。所以,你的問題是如何觸發調用乘數當用戶按下回車,你可以使用:

mGui.bind('<Return>', multiplier) 

你是否也想改變在Entry的文本?這個問題有點不清楚。你也可以通過ment.set來做到這一點。

+0

我的問題不是關於當用戶按下輸入時觸發函數「乘數」。但非常感謝提及並糾正了我的錯誤。 @ Lafexlos的答案解決了我的問題。 –