2017-10-05 229 views
-2

我正在尝试为学校项目制作公式计算器。我正在尝试使用.get tkinter方法来获取Entry中的内容。它总是发送一个错误。尽管如此,我不想将它写入课堂。tkinter .get方法无法正常工作

这不是最终的代码。

from tkinter import * 

def speedCalc(): 
    _distance = spDistance.get() 
    _time = spTime.get() 

spDistance = Entry(speed).grid(row=1, column=1) 
spTime = Entry(speed).grid(row=2, column=1) 
spSpeed = Entry(speed).grid(row=3, column=1) 

spConvert = Button(speed, text="Calculate", command=speedCalc) 
spConvert.grid(row=4, column=1) 

当我执行的代码,它说,这在控制台上:

Exception in Tkinter callback 
Traceback (most recent call last): 
    File"C:\Users\JackP\AppData\Local\Programs\Python\Python36\lib\tkinter\__init__.py", line 1699, in __call__ 
return self.func(*args) 
    File "C:/Users/JackP/Desktop/Python Projets/Formula App/4. Extention.py", line 25, in speedCalc 
_distance = spDistance.get() 
AttributeError: 'NoneType' object has no attribute 'get' 
+1

这个问题已经被问了无数次。请google [AttributeError:'NoneType'对象没有'get'属性](https://www.google.com/search?source=hp&q=AttributeError%3A+%27NoneType%27+object+has+no+attribute+% 27get%27&OQ = AttributeError的%3A +%27NoneType%27 + +对象+有没有+属性+%27get%27&gs_l = PSY-ab.3 ... 325.325.0.634.1.1.0.0.0.0.0.0..0.0 .... 0 ... 1.1.64.psy-ab..1.0.0 .... 0.h1eEyi4YuD0),你会得到你的答案。 –

+0

谢谢。我四处寻找错误的东西。 – JackHumphries

回答

1

你不能在同一行作为初始化使用布局像gridpack。你必须把那些在单独的行:

spDistance = Entry(speed) 
spDistance.grid(row=1, column=1) 
+0

谢谢。因为我创建了一个文本编辑器,所以我一直在寻找这个问题。我想我犯了同样的错误。 – JackHumphries

1

当你将一个部件一个变量,不叫上小部件直接在同一线上的布局管理方法;在另一条线上做。
原因是,thinter布局管理器packgridplaceNone

from tkinter import * 

def speedCalc(): 
    _distance = spDistance.get() 
    _time = spTime.get() 

spDistance = Entry(speed) 
spDistance.grid(row=1, column=1) 
spTime = Entry(speed) 
spTime.grid(row=2, column=1) 
spSpeed = Entry(speed) 
spSpeed.grid(row=3, column=1) 

spConvert = Button(speed, text="Calculate", command=speedCalc) 
spConvert.grid(row=4, column=1) 
+0

谢谢。我没有搜索错误,我只是搜索“tkinter .get not working。”。 – JackHumphries