Python Tkinter get()函数未返回任何内容

Python Tkinter get()函数未返回任何内容,python,tkinter,Python,Tkinter,我正在尝试使用tkinter GUI编写一个程序来计算一些事情。我的get()函数不起作用,我不知道为什么 from tkinter import * from math import * root = Tk() v = 0 l = 0 w = 0 t1 = 0 t0 = 0 label1 = Label(root, text = "Enter value for length (mm) :").grid(columnspan = 2, sticky = "E") length = Entr

我正在尝试使用tkinter GUI编写一个程序来计算一些事情。我的get()函数不起作用,我不知道为什么

from tkinter import *
from math import *
root = Tk()

v = 0
l = 0
w = 0
t1 = 0
t0 = 0

label1 = Label(root, text = "Enter value for length (mm) :").grid(columnspan = 2, sticky = "E")
length = Entry(root).grid(row = 0, column = 2)

label2 = Label(root, text = "Enter value for volume (mm^2) :").grid(columnspan = 2, sticky = "E")
volume = Entry(root).grid(row = 1, column = 2)

label3 = Label(root, text = "Enter value for the thickness of the cylinder (mm) :").grid(columnspan = 2, sticky = "E")
thickness = Entry(root).grid(row = 2, column = 2)

label4 = Label(root, text = "Enter value for starting temperature (K) :").grid(columnspan = 2, sticky = "E")
st_T = Entry(root).grid(row = 3, column = 2)

label5 = Label(root, text = "Enter value for finishing temperature (K) :").grid(columnspan = 2, sticky = "E")
end_T = Entry(root).grid(row = 4, column = 2)

def save():
    v = volume.get()
    l = length.get()
    w = thickness.get()
    t0 = st_T.get()
    t1 = end_T.get()

    global values 
    values = [v, l, w, t1, t0]

answer = StringVar()
labelans = Label(root, textvariable = answer).grid(columnspan = 3,)
answer.set("Answer = ")

def area_circle():
    global answer
    answer =  v / l
    print(answer)

Button(root, text = "Submit", command = save()).grid(row = 6, column = 0)

root.mainloop()
显然,有些变量我还没有用到,但我试图先把第一部分弄对

对于v,显示的错误为:
Message='NoneType'对象没有属性'get'

命令的
参数应该是回调,而不是实际调用:

Button(root, text="Submit", command=save).grid(row=6, column=0)
网格几何体管理器将小部件放在二维表格中。 主窗口小部件分为若干行和列,每个行和列 结果表中的“单元格”可以容纳小部件

重要的是Grid()返回的是非值

如果你是这样做的:

length = Entry(root).grid(row = 0, column = 2)
在可变长度中,您将没有任何值

你应该像这样做:

length = Entry(root)
length.grid(row = 0, column = 2)
您的代码:

label1 = Label(root, text = "Enter value for length (mm) :")
label1.grid(columnspan = 2, sticky = "E")
length = Entry(root)
length.grid(row = 0, column = 2)

label2 = Label(root, text = "Enter value for volume (mm^2) :")
label2.grid(columnspan = 2, sticky = "E")
volume = Entry(root)
volume.grid(row = 1, column = 2)

label3 = Label(root, text = "Enter value for the thickness of the cylinder (mm) :")
label3.grid(columnspan = 2, sticky = "E")
thickness = Entry(root)
thickness.grid(row = 2, column = 2)

label4 = Label(root, text = "Enter value for starting temperature (K) :")
label4.grid(columnspan = 2, sticky = "E")
st_T = Entry(root)
st_T.grid(row = 3, column = 2)

label5 = Label(root, text = "Enter value for finishing temperature (K) :")
label5.grid(columnspan = 2, sticky = "E")
end_T = Entry(root)
end_T.grid(row = 4, column = 2)

def save():
    v = volume.get()
    l = length.get()
    w = thickness.get()
    t0 = st_T.get()
    t1 = end_T.get()

    global values
    values = [v, l, w, t1, t0]

answer = StringVar()
labelans = Label(root, textvariable = answer).grid(columnspan = 3,)
answer.set("Answer = ")

def area_circle():
    global answer
    answer =  v / l
    print(answer)

Button(root, text = "Submit", command = save()).grid(row = 6, column = 0)

root.mainloop()
输出:


我更改了它,但它仍然像以前一样返回非类型错误只要在保存时删除这些括号,它就会工作。正如我所说,我删除了括号,非类型错误仍然存在Das@ncica指出的,您没有提到的是,在解决初始错误后,在实际单击按钮后,另一个错误现在清楚地暴露出来了。请参考他的答案,这是两个问题的副本。另一个是它的复制品是