出现错误AttributeError:'_tkinter.tkapp'对象没有属性'getitems'
Posted
技术标签:
【中文标题】出现错误AttributeError:\'_tkinter.tkapp\'对象没有属性\'getitems\'【英文标题】:getting error AttributeError: '_tkinter.tkapp' object has no attribute 'getitems'出现错误AttributeError:'_tkinter.tkapp'对象没有属性'getitems' 【发布时间】:2019-11-15 14:12:18 【问题描述】:我不断收到错误 AttributeError :
'_tkinter.tkapp' 对象没有属性 'getitems'
我认为这是因为子例程无法相互通信我尝试将 get_items 分配为全局变量但没有结果。我正在尝试制作一个按钮,用于收集GUI
中的条目,将它们输入到带有Sql Lite
的数据库中,用于汽车经销商的库存系统。
from tkinter import*
import sqlite3
conn = sqlite3.connect("E:\computing project\database of cars.db")
c=conn.cursor()
class Database:
def __init__ ( kwargs , self, master=None ,*args):
self.master = master
self.heading = Label(master , text = "add to the database ", font=("ariel 35 bold") )
self.heading.place (x=250 , y=0)
self.name= Label(master, text= "enter product name", font=("arial 18 bold"))
self.name.place(x=0,y=50)
self.make_1= Label(master , text = "enter car make ", font=("ariel 18 bold"))
self.make_1.place(x=0,y=100)
self.model_1= Label(master , text = "enter car model ", font=("ariel 18 bold"),)
self.model_1.place(x=0,y=150)
self.regi_1= Label(master , text = "enter registration plate", font=("ariel 18 bold"))
self.regi_1.place(x=0,y=200)
self.colour_1= Label(master , text = "enter car colour ", font=("ariel 18 bold"))
self.colour_1.place(x=0,y=250)
self.cost_1= Label(master , text = "enter cost price ", font=("ariel 18 bold"))
self.cost_1.place(x=0,y=300)
self.tcost_1= Label(master , text = "enter total cost price ", font=("ariel 18 bold"))
self.tcost_1.place(x=0,y=350)
self.sell_1= Label(master , text = "selling price ", font=("ariel 18 bold"))
self.sell_1.place(x=0,y=400)
self.tsell_1= Label(master , text = "enter total selling price", font=("ariel 18 bold"))
self.tsell_1.place(x=0,y=450)
self.assprof_1= Label(master , text = "enter total selling price", font=("ariel 18 bold"))
self.assprof_1.place(x=0,y=500)
#button to add to db
# b = Button( command=self.get)
# b.place(x=0,y=0)
#entry boxes
self.name_e = Entry(master, width=25, font=("arial 18 bold"))
self.name_e.place(x=300, y=50)
self.name_e = Entry(master, width=25, font=("arial 18 bold"))
self.name_e.place(x=300, y=100)
self.name_e = Entry(master, width=25, font=("arial 18 bold"))
self.name_e.place(x=300, y=150)
self.name_e = Entry(master, width=25, font=("arial 18 bold"))
self.name_e.place(x=300, y=200)
self.name_e = Entry(master, width=25, font=("arial 18 bold"))
self.name_e.place(x=300, y=250)
self.name_e = Entry(master, width=25, font=("arial 18 bold"))
self.name_e.place(x=300, y=300)
self.name_e = Entry(master, width=25, font=("arial 18 bold"))
self.name_e.place(x=300, y=350)
self.name_e = Entry(master, width=25, font=("arial 18 bold"))
self.name_e.place(x=300, y=400)
self.name_e = Entry(master, width=25, font=("arial 18 bold",))
self.name_e.place(x=300, y=450)
self.name_e = Entry(master, width=25, font=("arial 18 bold"))
self.name_e.place(x=300, y=500)
self.b = Button(command=self.getitems)
self.b.place(x=0,y=0)
def get_items(self,*args,**kwargs): #this function gets the items from the entry boxes
self.carmake=self.carmake_e.get()
self.carmodel=self.carmodel_e.get()
self.registrationplate=self.registrationplate_e.get()
self.carcolour=self.carcolour_e.get()
self.costprice=self.costprice_e.get()
self.totalprice=self.totalprice_e.get()
self.sellingprice=self.sellingprice_e.get()
self.assumedprofit=self.assumedprofit_e.get()
if self.carmake == '' or self.carmodel == '' == self.carcolour == '':
print ("WRONG")
else:
print("solid m8 ")
root = Tk()
b = Database(root)
frame = Frame(root,width=1920,height=1080)
root.geometry("1920x1080")
root.title("add to database")
root.configure(background="#b7b7e5")
root.mainloop()
【问题讨论】:
【参考方案1】:我看到两个错误:
首先:您定义了方法get_items
(名称中带有_
)但您使用command=self.getitems
(名称中没有_
)
self.b = Button(command=self.get_items)
第二:你的论点顺序错误是
__init__(kwargs, self, master=None, *args)
因此它将类实例分配给变量kwargs
而不是self
,并将root
分配给self
,后来它很难找到self.get_items
,因为它意味着root.get_items
kwargs
应该在结尾,self
在开头
__init__(self, master=None, *args, **kwargs)
【讨论】:
以上是关于出现错误AttributeError:'_tkinter.tkapp'对象没有属性'getitems'的主要内容,如果未能解决你的问题,请参考以下文章
异常解决-- AttributeError: cannot assign module before Module.__init__() call
AttributeError:“_io.TextIOWrapper”对象没有属性“rpartition”
我遇到错误:AttributeError:'str'对象没有属性'isfloat'
AttributeError:“MLPClassifier”对象没有属性“_label_binarizer”
为啥在子类化 Pydantic BaseModel 时会出现“AttributeError:__fields_set__”?