更新条目中的文本 (Tkinter)

问题描述 投票:0回答:3

下面的代码片段通过表单获取用户的输入,然后返回输入乘以 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()
python python-3.x tkinter
3个回答
11
投票

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

2
投票

您通过

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

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

您是否也想更改

Entry
中的文本?问题有点不清楚。您也可以通过
ment.set
来完成此操作。


0
投票

IDK IDK IDK IDK IDK IDK IDK IDK IDK IDK IDK IDK

© www.soinside.com 2019 - 2024. All rights reserved.