从Entry获得价值

时间:2019-01-16 11:47:18

标签: python tkinter

这是我的代码的一部分,我试图从Entry bf获取值,但是当我运行它时,它表明:“ AttributeError:'NoneType'对象没有属性'get'”。有谁知道为什么会这样?

代码:

from tkinter import *

window = Tk()
window.geometry("650x450+500+300")

def Calcular():
    print("teste")
    print(bf.get())

Geom = LabelFrame(window, text = "Dados Geométricos", font="Arial 12", width=200)
Geom.place(x=290, y=10)

Label(Geom, text ="bf: ", font="Arial 12").grid(column=0, row=0, sticky=E)

Label(Geom, text =" cm", font="Arial 12").grid(column=2, row=0, sticky=W)

bf = Entry(Geom, width=5, justify= RIGHT, font="Arial 12").grid(column=1, row=0)

btnCalcular = Button(window, text="Calcular", font="Arial 12", command=Calcular)
btnCalcular.place(x=50, y=180, width = 150)

window.mainloop()

2 个答案:

答案 0 :(得分:1)

在2中拆分以下行:

bf = Entry(Geom, width=5, justify= RIGHT, font="Arial 12").grid(column=1, row=0)

像这样

bf = Entry(Geom, width=5, justify= RIGHT, font="Arial 12")
bf.grid(column=1, row=0)

目前bf不是Entry小部件,而是Nonegrid()返回的 另外请注意,通常您会使用变量,例如IntVar,即绑定到条目小部件

答案 1 :(得分:1)

bf = Entry(Geom, width=5, justify= RIGHT, font="Arial 12")
bf.grid(column=1, row=0)

NoneType的原因是由于您的代码中返回的网格类型为column(column = 1,row = 0)。