我正在尝试为学校项目制作一个公式计算器。我正在尝试使用 .get tkinter 方法来获取条目中的内容。它总是发送错误。不过我不想把它写进一个类。
这不是最终代码。
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:UsersJackPAppDataLocalProgramsPythonPython36libtkinter__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'
不能在
初始化的同一行上使用grid
或pack
等布局。你必须把它们放在单独的行上:
spDistance = Entry(speed)
spDistance.grid(row=1, column=1)
将小部件分配给变量时,不要直接在同一行上调用小部件上的布局管理器方法;而是在另一行
上调用。原因是雷特布局管理器pack
、grid
和place
返回None
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)