为什么这个函数执行两次?

时间:2017-11-01 01:51:15

标签: tkinter python-3.6

我有一个简单的tkinter窗口,可以从质量转换为重量。代码是:

from tkinter import *
from tkinter import ttk

win = Tk()

Label(win, text='Mass to Weight').pack()
entry = IntVar(win)
entry.set(1)
e1 = Entry(win, textvariable=entry)

us = StringVar(win)
us.set('Mass')
dm1 = ttk.OptionMenu(win, us, 'Mass', 'Mass', 'Weight')

def callback(*args):
    su = e1.get()
    go = (int(float(su))*10)

    e1.delete(0, 'end')
    e1.insert(0, str(go))
    dm1.configure(state='disabled')

us.trace('w', callback)

e1.pack()
dm1.pack()

win.mainloop()

质量乘以10得到重量。因此,当我们'时,会调用回调函数。价值变为重量。但问题是这个函数被调用了两次。例如,当我想将10 Kg质量转换为重量时,它返回1000而不是100.请不要将返回值放在相同的条目小部件中 感谢。

0 个答案:

没有答案