Python Tkinter get()函数未返回任何内容
我正在尝试使用tkinter GUI编写一个程序来计算一些事情。我的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
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指出的,您没有提到的是,在解决初始错误后,在实际单击按钮后,另一个错误现在清楚地暴露出来了。请参考他的答案,这是两个问题的副本。另一个是它的复制品是