我刚开始使用Tkinter,它说要转换为字符串,但是我的输入是一个整数,当我运行它时,它会给出以下错误:
TypeError: int()参数必须是字符串、类似字节的对象或数字,而不是'NoneType‘。
import tkinter as tk
window9 = tk.Tk()
msrp = tk.IntVar()
amgpage = tk.Label(window9, text="Mercedes Benz AMG Depreciation Calculator").pack(anchor='center')
amgpage = tk.Label(window9, text="What is the MSPR of the car?: ")
amgpage.pack()
msrp = tk.Entry(window9)
msrp.pack()
msrp.focus_set()
def callback():
value=(msrp.get())
b = tk.Button(window9, text="Save your msrp value", command=callback,fg="red")
b.pack()
amgpage = tk.Label(window9, text="What is the age of the car?: ")
amgpage.pack()
old = tk.Entry(window9)
old.pack()
old.focus_set()
def callback2():
age=(old.get())
b = tk.Button(window9, text="Save the age of the car", command=callback2,fg="blue")
b.pack()
amgpage = tk.Label(window9, text="")
amgpage.pack(anchor='w')
def msrpv():
m = callback()
p = int(m)
a = callback2()
n = int(a)
a=p*(1-0.15)**n
amgpage=tk.Label(window9,text="$"+a)
amgpage.pack()
amgmsrp = tk.Button(window9, text="Get the current value of the car.", command=msrpv,fg="green")
amgmsrp.pack()
window9.geometry("400x400")
window9.title("Mercedes Benz AMG Depreciation Calculator")
window9.mainloop()我想使用用户给我的数字,并将其插入我在程序"a=p*(1-0.15)**n“中使用的公式。
发布于 2019-04-27 00:19:14
您的回调没有返回语句,因此它们实际上是返回None。因此,在这几行:
m = callback()
p = int(m)
a = callback2()
n = int(a)m和a都被分配给None,所以您要调用int(None)。你可能是想做这样的事:
def callback():
value=(msrp.get())
return value和
def callback2():
age=(old.get())
return age发布于 2019-04-27 00:22:27
你根本不需要“回调”。
直接获取值
def msrpv():
p = int(msrp.get())
n = int(old.get())
a=p*(1-0.15)**n
amgpage=tk.Label(window9,text="$"+a)
amgpage.pack()请注意,value和age只在本地作用域以它们自己的函数为作用域,因此将它们放入按钮回调中不会做任何事情
https://stackoverflow.com/questions/55876187
复制相似问题