下面的代码通过表单从用户输入,然后返回输入乘以2.我想要做的是,当用户键入一个数字(例如5)并按下“Enter”键在键盘上或点击“计算”按钮,他输入数字“5”的地方也应该显示10,除了紧接下面的地方。通常情况下,表单会保留输入的数字,但是它下面的位置会更新并显示10(假设您已输入5)
我如何更新表单位置?
(如果我的问题不清楚,请告诉我,所以我可以更好地解释一下。)
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()
答案 0 :(得分:3)
您可以使用Entry的delete
和insert
方法。
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()
答案 1 :(得分:2)
您通过StringVar
方法更新的set
,您在multiplier
函数中执行此操作。所以你问的是当用户按下回车键时如何触发调用乘数,你可以使用:
mGui.bind('<Return>', multiplier)
您是否还想更改Entry
中的文字?问题有点不清楚。您也可以通过ment.set
完成此操作。