The code does not add new elements instead adds blank values to the database. Confused!
def ProEntry():
def makeEntry(name,date,dept,amt,amt2,lab,thr):
conn = sqlite3.connect("database.db")
cur = conn.cursor()
cur.execute("INSERT INTO products VALUES(?,?,?,?,?,?,?)",(name.get(), date.get(), dept.get(), amt.get(), amt2.get(), lab.get(), thr.get()))
conn.commit()
conn.close()
From here I begin adding values to the gui using entry widget
entrywindow = Tk()
entrywindow.title("New Product Entry")
namedisp = Label(entrywindow, text="Name Of Product").grid(row=0, column=0)
name = StringVar()
nameentry = Entry(entrywindow, textvariable=name).grid(row=0, column=1)
To check individual variables I printed name using name.get() but that also outputs null value.
print(name.get())
datedisp = Label(entrywindow, text="Date of Purchase (YYYY-MM-DD)").grid(row=1, column=0)
date = StringVar()
dateentry = Entry(entrywindow, textvariable=date).grid(row=1, column=1)
deptdisp = Label(entrywindow, text="Name Of Department(s) seperate with ','").grid(row=2, column=0)
dept = StringVar()
deptentry = Entry(entrywindow, textvariable=dept).grid(row=2, column=1)
amtdisp = Label(entrywindow, text="Amount Purchased").grid(row=3, column=0)
amt = StringVar()
amtentry = Entry(entrywindow, textvariable=amt).grid(row=3, column=1)
amt2disp = Label(entrywindow, text="Amount Installed").grid(row=4, column=0)
amt2 = StringVar()
amt2entry = Entry(entrywindow, textvariable=amt2).grid(row=4, column=1)
labdisp = Label(entrywindow, text="Room number Of Lab(s) seperate with ','").grid(row=5, column=0)
lab = StringVar()
labentry = Entry(entrywindow, textvariable=lab).grid(row=5, column=1)
thrdisp = Label(entrywindow, text="Threshold").grid(row=6, column=0)
thr = StringVar()
threntry = Entry(entrywindow, textvariable=thr).grid(row=6, column=1)
confirm = Button(entrywindow, text="Confirm", command = makeEntry(name,date,dept,amt,amt2,lab,thr)).grid(row=7, column=0)
exi = Button(entrywindow, text="Exit", command = entrywindow.destroy).grid(row=7, column=1)
entryWindow.mainloop()
I think that i faced this problem, when you type this line of code for example:
labentry = Entry(entrywindow, textvariable=lab).grid(row=5, column=1)
The labentry value will be returned as None so try:
labentry = Entry(entrywindow, textvariable=lab);labentry.grid(row=5, column=1)
Hope i helped you
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.