dishan 发表于 2021-12-2 15:53:31

Tkinter的Entry组件的get()函数问题

from tkinter import *
root=Tk()
def printinfo():
    print(f"Account:{en1.get()}+\nPassword:{en2.get()}")
lab1=Label(root,text='account').grid(row=0,column=0)
lab2=Label(root,text='password').grid(row=1,column=0)
en1=Entry(root).grid(row=0,column=1)
en2=Entry(root).grid(row=1,column=1)

btn=Button(root,text='login',command=printinfo).grid(row=2,column=0)

root.mainloop()

运行后第四行报错AttributeError: 'NoneType' object has no attribute 'get'

这个题我是从台湾洪锦奎的GUITkinter书里简化改成的,printinfo()这个函数中的格式我没有用书上的方式格式化,而是用新的F“”格式化生成。就算改成和原书一样的老式%s写法也是这个错误提示。这是怎么回事。
就是想获得en1的字符串并打印出来。弄了一下午了。

疾风怪盗 发表于 2021-12-2 16:41:25

from tkinter import *

root = Tk()

lab1 = Label(root, text='account').grid(row=0, column=0)
lab2 = Label(root, text='password').grid(row=1, column=0)
en1 = Entry(root)
en1.grid(row=0, column=1)
en2 = Entry(root)
en2.grid(row=1, column=1)


def printinfo():
    print(f"Account:{en1.get()}\nPassword:{en2.get()}")


btn = Button(root, text='login', command=printinfo).grid(row=2, column=0)

root.mainloop()

dishan 发表于 2021-12-2 20:54:45

疾风怪盗 发表于 2021-12-2 16:41


知道原因了,.grid
页: [1]
查看完整版本: Tkinter的Entry组件的get()函数问题