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