【问题标题】:Updating Text In Entry (Tkinter)更新条目中的文本 (Tkinter)
【发布时间】:2014-07-13 21:34:40
【问题描述】:

下面的一段代码通过表单从用户那里获取输入,然后将输入乘以 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


    【解决方案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】:

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

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

      您还想更改Entry 中的文本吗?这个问题有点不清楚。您也可以通过ment.set 进行操作。

      【讨论】:

      • 我的问题不是关于在用户按下回车时触发“乘数”功能。但是非常感谢您提及并纠正我的错误。 @Lafexlos 的回答解决了我的问题。
      猜你喜欢
      • 2021-12-30
      • 1970-01-01
      • 1970-01-01
      • 2011-11-04
      • 2018-08-06
      • 1970-01-01
      • 1970-01-01
      • 2022-10-13
      • 1970-01-01
      相关资源
      最近更新 更多