首页 > 解决方案 > 华氏温度到摄氏度转换器的 GUI 窗口执行中的无类型错误

问题描述

from tkinter import *
my_window = Tk()
def converter():
    F = float(entry_input.get())
    T = (F-32)*5/9
    display_Temp["text"] = str(T) 
Label(my_window,text="Enter Temperature in Farenheit = ").grid(row=0,column=0)
display_Temp = Label(my_window).grid(row=1,column=1)
entry_input = Entry(my_window).grid(row=0,column=1)
button = Button(my_window,text="Convert to Deg Celcius",command = converter,bd=8,relief="raised").grid(row=1,column=0)
my_window.mainloop()

我在 GUI 窗口中输入了 20 F,该窗口用于将华氏度值转换为摄氏度。但是,当我按下转换器按钮时,它会给出以下错误消息: AttributeError: 'NoneType' object has no attribute 'get'

请参考图片以了解错误

在此处输入图像描述 我根据以下接受的答案包括了更正,它的工作原理如下: 在此处输入图像描述

标签: pythonpython-3.xtkintertkinter-entry

解决方案


几何管理器 ( grid, pack, place) 返回无;您不应该在与您的小部件相同的行上分配grid

import tkinter as tk     # <-- avoid star imports


def converter():
    F = float(entry_input.get())
    T = (F - 32) * 5 / 9
    display_Temp["text"] = str(T) 


my_window = tk.Tk()

tk.Label(my_window, text="Enter Temperature in Farenheit = ").grid(row=0, column=0)

display_Temp = tk.Label(my_window)
display_Temp.grid(row=1, column=1)

entry_input = tk.Entry(my_window)
entry_input.grid(row=0, column=1)

button = tk.Button(my_window, text="Convert to Deg Celcius", command=converter, bd=8, relief="raised")
button.grid(row=1, column=0)

my_window.mainloop()

推荐阅读