使用跟踪时出现浮动错误

时间:2020-04-15 16:45:55

标签: python tkinter

我修改了我在此处找到的一段代码,大部分情况下它可以工作,但是警告不断弹出。它期望浮点数,但得到“”,但我不知道为什么会这样。我认为整数可以表示为浮点数。例如,一旦输入第二个数字,该错误就会消失。如果我只键入“ 1”,我会收到警告,但是一旦键入“ 10”,警告就会停止弹出。这有点烦人,因为我有大约2000行代码,而且我需要能够看到真正的错误。 enter image description here

import tkinter as tk

root = tk.Tk()
def back(var1,var2):
    b=var1.get()+var2.get()
    print(var1.get())
    print(var2.get())
    a.set(b)


var1 = tk.DoubleVar()
var2 = tk.DoubleVar()
a=     tk.DoubleVar()

E1= tk.Entry(root, textvariable=var1)
E1.pack()
E2= tk.Entry(root, textvariable=var2)
E2.pack()
var1.trace('w',lambda name, index, mode, var1=var1: back(var1,var2))
var2.trace('w',lambda name, index, mode, var2=var2: back(var1,var2))
l=tk.Label(root, textvariable=a)
l.pack()

root.mainloop()

enter image description here

1 个答案:

答案 0 :(得分:0)

使用try / except捕获异常,并在except块中执行所需的操作:

def back(var1, var2):
    try:
        a.set(var1.get() + var2.get())
    except (ValueError, tk.TclError):
        # do whatever you want, or
        a.set('invalid value')