更新条目中的文本(Tkinter)

时间:2014-05-24 17:05:05

标签: python python-3.x tkinter

下面的代码通过表单从用户输入,然后返回输入乘以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()

2 个答案:

答案 0 :(得分:3)

您可以使用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()

答案 1 :(得分:2)

您通过StringVar方法更新的set,您在multiplier函数中执行此操作。所以你问的是当用户按下回车键时如何触发调用乘数,你可以使用:

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

您是否还想更改Entry中的文字?问题有点不清楚。您也可以通过ment.set完成此操作。