Я пытаюсь написать небольшую программу для использования на работе.Это выглядит так:

Как вы можете видеть, есть два выпадающих меню.При нажатии на одну из кнопок в меню, заполнении двух других записей (Korte beschrijving, datum) и щелчке по пальцу ноги Voeg (Добавить новый инцидент) он должен быть сохранен как запись в базе данных.Я полагаю, что некоторые вещи не работают, и я получаю две ошибки:
Сначала я получил сообщение об ошибке: «В меню параметров нет атрибута get».Тогда я сделал две функции:
def drop_down_soort():
soort.get()
window.quit()
def drop_down_user():
user.get()
window.quit()
Теперь я получаю новую ошибку:
Это весь код: интерфейс и бэкэнд + ошибка.
from tkinter import *
import backend
def alle_incidenten():
tekst_vak.delete(0,END)
for row in backend.alle():
tekst_vak.insert(END,row)
def drop_down_soort():
soort.get()
window.quit()
def drop_down_user():
user.get()
window.quit()
def voeg_toe():
backend.voeg_toe(drop_down_soort.get(),drop_down_user.get(),
beschrijving_tekst.get(),datum_tekst.get())
tekst_vak.delete(0,END)
tekst_vak.insert(END,(drop_down_soort.get(),drop_down_user.get(),
beschrijving_tekst.get(),datum_tekst.get()))
window=Tk()
window.wm_title("T I T A A N Incidenten Register")
soort = StringVar(window)
soort.set("Soort")
menu = OptionMenu(window, soort, "Incident", "RFC", "Opdracht")
menu.grid(row=0,column=0)
user = StringVar(window)
user.set("User")
user_menu = OptionMenu(window, user, "Jesse", "Jan", "Sirano", "Shannon",
"Niek", "Thomas", "Patrick")
user_menu.grid(row=1,column=0)
l3=Label(window,text="Korte beschrijving")
l3.grid(row=0,column=2)
l4=Label(window,text="Datum")
l4.grid(row=1,column=2)
beschrijving_tekst=StringVar()
l3=Entry(window,textvariable=beschrijving_tekst)
l3.grid(row=0,column=3)
datum_tekst=StringVar()
l4=Entry(window,textvariable=datum_tekst)
l4.grid(row=1,column=3)
tekst_vak=Listbox(window,height=10,width=35)
tekst_vak.grid(row=2,column=0,rowspan=6,columnspan=2)
scrollbar1=Scrollbar(window)
scrollbar1.grid(row=2,column=2,rowspan=10)
tekst_vak.configure(yscrollcommand=scrollbar1.set)
scrollbar1.configure(command=tekst_vak.yview)
b1=Button(window,text="Alle incidenten", width=14, bg='Gray',
command=alle_incidenten)
b1.grid(row=2,column=3)
b2=Button(window,text="Voeg incident toe", width=14, bg='Gray',
command=voeg_toe)
b2.grid(row=3,column=3)
b3=Button(window,text="Pas incident aan", width=14, bg='Gray')
b3.grid(row=4,column=3)
b4=Button(window,text="Verwijder incident", width=14, bg='Red')
b4.grid(row=5,column=3)
b5=Button(window,text="Sluit programma", width=14, bg='Orange')
b5.grid(row=6,column=3)
window.mainloop()
Серверная часть:
import sqlite3
def verbind_met_database():
verbinding=sqlite3.connect("titaan_incidenten.db")
cur=verbinding.cursor()
cur.execute("CREATE TABLE IF NOT EXISTS titaan_incidenten
(id INTEGER PRIMARY KEY, soort TEXT, user TEXT, beschrijving TEXT,
datum TEXT)")
verbinding.commit
verbinding.close()
def alle():
verbinding=sqlite3.connect("titaan_incidenten.db")
cur=verbinding.cursor()
cur.execute("SELECT * FROM titaan_incidenten")
rijen=cur.fetchall()
verbinding.close()
return rijen
def voeg_toe(soort,user,beschrijving,datum):
verbinding=sqlite3.connect("titaan_incidenten.db")
cur=verbinding.cursor()
cur.execute("INSERT INTO titaan_incidenten VALUES (NULL,?,?,?,?)",
(soort,user,beschrijving,datum))
verbinding.commit()
verbinding.close()
def pas_aan(id,soort,user,beschrijving,datum):
verbinding=sqlite3.connect("titaan_incidenten.db")
cur=verbinding.cursor()
cur.execute("UPDATE titaan_incidenten SET
soort=?,user=?,beschrijving=?,datum=? WHERE id=?",
(id,soort,user,beschrijving,datum))
verbinding.commit
verbinding.close()
def verwijder():
verbinding=sqlite3.connect("titaan_incidenten.db")
cur=verbinding.cursor()
cur.execute("DELETE FROM titaan_incidenten WHERE id=?",(id,))
ОШИБКА:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\crisc\Anaconda3\lib\tkinter\__init__.py", line 1702, in __
call__
return self.func(*args)
File "frontend.py", line 18, in voeg_toe
backend.voeg_toe(drop_down_soort.get(),
drop_down_user.get(),beschrijving_tekst.get(),datum_tekst.get())
AttributeError: 'function' object has no attribute 'get'
Для меня работа с выпадающим меню - это то, чего я никогда раньше не делал.Так что, возможно, созданные мной функции не нужны.Если бы кто-нибудь мог дать мне несколько советов о том, как заставить это меню работать, это было бы здорово!
Я отредактировал его с правильной ошибкой и кодом.Извините за раннюю путаницу.
Спасибо,
Cris