首页 > 解决方案 > 如何修复 AttributeError:“NoneType”对象没有属性“get”

问题描述

运行 SIMPLE GUI 代码时出现此错误

AttributeError:“NoneType”对象没有属性“get”

gui本身非常简单,主要是关于使用序列号创建软件登录功能。我在网上看到了一些教程并创建了这个示例,当我运行时出现错误。我该如何解决这个问题?

from tkinter import  *
root1 = Tk()
root1.geometry("700x330+350+300")
key = "Agcy5x7kZe"
frame = LabelFrame(root1)

def Submitcommand():
    a = entry.get()
    b = serialentry.get()
    print(a)# To check
    print(b)# To check


photo = PhotoImage(file = 'gil.png')
photo1 = Label(frame , image = photo).grid(row = 0 , column = 0 , columnspan = 2 , pady = (0 , 20))

username = Label(frame, text = "Username :" , font = "helvetica 30 bold").grid(row = 1 , column = 0)
entry = Entry(frame, bd = 5 , font = "Lucida 30 bold" , width = 25).grid(row = 1 , column = 1)


label = Label(frame, text = "Serial Key : " , font = "helvetica 30 bold").grid(row = 2 , column = 0)
serialentry = Entry(frame, bd = 5 , font = "Lucida 30 bold" , width = 25).grid(row = 2 , column = 1)

submit = Button(frame , text = "Login" , height = 2 , width = 10 , command = Submitcommand).grid(row = 3 , column = 1 , columnspan = 2 , pady = (0 , 20))
frame.place(relx = 0.5 , rely = 0.5 , anchor = CENTER)


root1.mainloop()

标签: pythontkinter

解决方案


您必须首先创建小部件,然后才能放置等。你看,Entry()返回一个入口对象,所以一旦你这样做e = Entry()e就是一个对象。该对象有一个place方法,所以一旦你运行e.place()它然后放置它。问题是

a = Entry().place()

e = Entry()
a = e.place()

产生相同的a,但你不感兴趣,你需要e。这是您修复的代码:

from tkinter import  *
root1 = Tk()
root1.geometry("700x330+350+300")
key = "Agcy5x7kZe"
frame = LabelFrame(root1)

def Submitcommand():
    a = entry.get()
    b = serialentry.get()
    print(a)# To check
    print(b)# To check


photo = PhotoImage(file = '/home/pi/2020-05-02-143258_1920x1080_scrot.png')
photo1 = Label(frame , image = photo)
photo1.grid(row = 0 , column = 0 , columnspan = 2 , pady = (0 , 20))

username = Label(frame, text = "Username :" , font = "helvetica 30 bold")
username.grid(row = 1 , column = 0)
entry = Entry(frame, bd = 5 , font = "Lucida 30 bold" , width = 25)
entry.grid(row = 1 , column = 1)


label = Label(frame, text = "Serial Key : " , font = "helvetica 30 bold")
label.grid(row = 2 , column = 0)
serialentry = Entry(frame, bd = 5 , font = "Lucida 30 bold" , width = 25)
serialentry.grid(row = 2 , column = 1)

submit = Button(frame , text = "Login" , height = 2 , width = 10 , command = Submitcommand)
submit.grid(row = 3 , column = 1 , columnspan = 2 , pady = (0 , 20))
frame.place(relx = 0.5 , rely = 0.5 , anchor = CENTER)


root1.mainloop()

希望这会有所帮助!


推荐阅读