Я пытаюсь получить значение из опционального меню, чтобы при нажатии на «удалить профиль» значение выводилось из «option_changed» и «delete» в базу данных. Это единственный способ решить эту проблему. Кроме того, они могут каким-либо образом правильно оформить мой пользовательский интерфейс, поскольку у меня есть 4 пользовательских интерфейса из той же программы
def prof_menu(): #This UI is run when a button is pressed on the Main frame
prof_menu=Tk()
get_info=cursor.execute("SELECT Profile_name FROM profile ")
profiles=get_info.fetchall()
print(profiles)
def delete_profile():
sql_delete="DELETE FROM profile WHERE Profile_name=?;"
cursor.execute(sql_delete,profile)
connection.commit()
def option_changed(*args):
profile=variable.get()
print(profile)
#DECLARING WIDGETS
variable=StringVar(prof_menu)
variable.set(profiles[0])
variable.trace("w",option_changed)
profile_select=OptionMenu(prof_menu,variable,*profiles)
button1=Button(prof_menu,text='Create profile',command=create_profile)
button2=Button(prof_menu,text='Delete profile',command=delete_profile)
#ALIGNING WIDGETS
profile_select.grid(row=0,column=0)
button1.grid(row=0,column=1)
button2.grid(row=0,column=2)
prof_menu.mainloop()
main=Tk()
MAIN FRAME
taskname_frame=Frame(main,bg='white',width=200,height=580)
profile_frame=Frame(main,bg='cyan',width=200,height=580)
actions_frame=Frame(main,bg='magenta',width=200,height=580)
status_frame=Frame(main,bg='yellow',width=200,height=580)
#MAIN WIDGET
taskname=Label(main,text='Task')
profile=Label(main,text='Profile')
actions=Label(main,text='Actions')
status=Label(main,text='Status')
create_tasks_button=Button(main,text=' + New Tasks',command=create_task)
#ALIGNING MAIN WIDGETS & FRAME
taskname.grid(row=4,column=1,pady=10)
taskname_frame.grid(row=5,column=1,sticky=SW)
profile.grid(row=4,column=2,padx=10,pady=10)
profile_frame.grid(row=5,column=2)
actions.grid(row=4,column=3,padx=10,pady=10)
actions_frame.grid(row=5,column=3)
status.grid(row=4,column=4,padx=10,pady=10)
status_frame.grid(row=5,column=4,sticky=SE)
create_tasks_button.grid(row=0,column=4,padx=10,pady=10)
for i in range(0,5):
main.columnconfigure(i,weight=1)
main.mainloop()