Как правильно запустить виджет Listbox()?
В моей программе выводятся все варианты выбора на экран, а мне нужно чтобы они были скрыты, и выбор открывался посредством нажатия мышки. Вот моя программа:
from tkinter import *
import os
import sqlite3
#SQL
#db=aqlite3.connect('server.db')
#sql = db.cursor()
#sql.execute(""" CREATE TABLE IF NOT EXISTS users (
# pasport BIGINT,
# name TEXT,
# position TEXT,
# salary BIGINT,
# sunday morning TEXT,
# sunday evenyng TEXT,
# monday morning TEXT,
# monday evenyng TEXT
#) """")
#db.commit() #sql.execute("SELECT * FROM login")
#sql.execute("SELECT login FROM users")
#if sql.fetchone() is None :
# sql.execute(f"INSERT INTO users VALUES (?, ?, ?)" , (name1, name2 , name3 )
# db.commit()
destroy_obj = []
def CheckChange(name):
if name.get() == 1 : x = "yes"
else : x = "no"
return x
def Destroy_object():
for x in destroy_obj:
x.destroy()
def Save_worker(event , name_addw , salary_addw, pasport_addw, sun_m_addw , sun_e_addw, mon_m_addw , mon_e_addw , tue_m_addw, tue_e_addw , wed_m_addw , wed_e_addw , thu_m_addw, thu_e_addw, fri_m_addw , sat_e_addw):
save_savew = Label(text = "name {0} , salary {1} , pasport {2} ,\n days of work\n Sunday : morning - {3} , evenyng - {4} \n Monday : morning - {5} , evenyng - {6} \n Tuesday : morning - {7} , evenyng - {8} \n Wednesday : morning - {9} , evenyng - {10} \n Thursday: morning - {11} , evenyng - {12} \n Friday : morning - {13} \n Saturday : evenyng - {14} \n SAVED ".format(
name_addw.get() ,
salary_addw.get(),
pasport_addw.get() ,
position_addw.get(),
priorety_addw.get(),
CheckChange(sun_m_addw),
CheckChange(sun_e_addw),
CheckChange(mon_m_addw),
CheckChange(mon_e_addw) ,
CheckChange(tue_m_addw),
CheckChange(tue_e_addw) ,
CheckChange(wed_m_addw) ,
CheckChange(wed_e_addw) ,
CheckChange(thu_m_addw) ,
CheckChange(thu_e_addw) ,
CheckChange(fri_m_addw) ,
CheckChange(sat_e_addw)) )
save_savew.grid(row = 12 , column = 0 )
destroy_obj.append(save_savew)
def Add_worker():
Destroy_object()
#Entry
name1_addw = Label (text = "Name")
salary1_addw = Label (text = "Salary")
pasport1_addw = Label (text = "Pasport")
pasport_addw = Entry()
name_addw = Entry()
salary_addw = Entry()
position1_addw = Label(text = "Position")
position_addw = Listbox() #Это мой виджет Listbox()
for i in ('worker' , 'manager'):
position_addw.insert(0,i)
priorety1_addw = Label(text = "Priorety")
priorety_addw = Listbox() # -//-
for i_1 in (1,2,3):
priorety_addw.insert(0,i_1)
#Checkbutton
sun_m_addw1 = IntVar()
sun_m_addw = Checkbutton(text = "Sunday morning" , onvalue = 1 , offvalue = 0 , variable=sun_m_addw1 )
sun_e_addw1 = IntVar()
sun_e_addw = Checkbutton(text = "Sunday evenyng" , onvalue = 1 , offvalue = 0 , variable=sun_e_addw1 )
mon_m_addw1 = IntVar()
mon_m_addw = Checkbutton(text = "Monday morning" , onvalue = 1 , offvalue = 0 , variable=mon_m_addw1 )
mon_e_addw1 = IntVar()
mon_e_addw = Checkbutton(text = "Monday evenyng" , onvalue = 1 , offvalue = 0 , variable=mon_e_addw1)
tue_m_addw1 = IntVar()
tue_m_addw = Checkbutton(text = "Tuesday morning" , onvalue = 1 , offvalue = 0 ,variable=tue_m_addw1 )
tue_e_addw1 = IntVar()
tue_e_addw = Checkbutton(text = "Tuesday evenyng" , onvalue = 1 , offvalue = 0 , variable=tue_e_addw1)
wed_m_addw1 = IntVar()
wed_m_addw = Checkbutton(text = "Wednesday morning" , onvalue = 1 , offvalue = 0, variable=wed_m_addw1 )
wed_e_addw1 = IntVar()
wed_e_addw = Checkbutton(text = "Wednesday evenyng" , onvalue = 1 , offvalue = 0 ,variable=wed_e_addw1)
thu_m_addw1 = IntVar()
thu_m_addw = Checkbutton(text = "Thursday morning" , onvalue = 1 , offvalue = 0 ,variable=thu_m_addw1)
thu_e_addw1 = IntVar()
thu_e_addw = Checkbutton(text = "Thursday evenyng" , onvalue = 1 , offvalue = 0,variable=thu_e_addw1)
fri_m_addw1 = IntVar()
fri_m_addw = Checkbutton(text = "Friday morning" , onvalue = 1 , offvalue = 0,variable=fri_m_addw1 )
sat_e_addw1 = IntVar()
sat_e_addw = Checkbutton(text = "Saturday evenyng" , onvalue = 1 , offvalue = 0 ,variable=sat_e_addw1)
#Button
add_addw = Button (text = "ADD WORKER")
add_addw.bind ("<Button-1>" , lambda btn,
n_a=name_addw,
s_a=salary_addw ,
p_a = pasport_addw,
po_a = position_addw,
pr_a = priorety_addw,
su_a_m = sun_m_addw1 ,
su_a_e = sun_e_addw1 ,
mo_a_e = mon_m_addw1,
mo_a_m = mon_e_addw1,
tu_a_m = tue_m_addw1,
tu_a_e = tue_e_addw1,
we_a_m = wed_m_addw1,
we_a_e = wed_e_addw1,
th_a_m = thu_m_addw1,
th_a_e = thu_e_addw1,
fr_a_m = fri_m_addw1,
sa_a_e = sat_e_addw1:
Save_worker(btn, n_a, s_a, p_a, po_a, pr_a, su_a_m , su_a_e , mo_a_m , mo_a_e , tu_a_m , tu_a_e , we_a_m, we_a_e, th_a_m , th_a_e , fr_a_m , sa_a_e))
#Grid
name_addw.grid(row = 0, column = 1)
salary_addw.grid(row = 1 , column = 1)
name1_addw.grid(row = 0 , column = 0)
salary1_addw.grid(row = 1 , column = 0)
pasport1_addw.grid(row = 2 , column = 0)
pasport_addw.grid(row = 2 , column = 1 )
add_addw.grid(row = 3, column = 0 )
position1_addw.grid(row = 4 , column = 0)
position_addw.grid(row = 4 , column = 1)
priorety1_addw.grid(row = 5 , column = 1)
priorety_addw.grid(row = 5 , column = 1)
sun_m_addw.grid(row = 0 , column = 2)
sun_e_addw.grid(row = 1 , column = 2)
mon_m_addw.grid(row = 2 , column = 2)
mon_e_addw.grid(row = 3 , column = 2)
tue_m_addw.grid(row = 4 , column = 2)
tue_e_addw.grid(row = 5 , column = 2)
wed_m_addw.grid(row = 6 , column = 2)
wed_e_addw.grid(row = 7 , column = 2)
thu_m_addw.grid(row = 8 , column = 2)
thu_e_addw.grid(row = 9 , column = 2)
fri_m_addw.grid(row = 10 , column = 2)
sat_e_addw.grid(row = 11 , column = 2)
#Destroy
destroy_obj.append(pasport1_addw)
destroy_obj.append(pasport_addw)
destroy_obj.append(add_addw)
destroy_obj.append(name1_addw)
destroy_obj.append(salary1_addw)
destroy_obj.append(name_addw)
destroy_obj.append(salary_addw)
destroy_obj.append(position1_addw)
destroy_obj.append(position_addw)
destroy_obj.append(priorety1_addw)
destroy_obj.append(priorety_addw)
destroy_obj.append(sun_m_addw)
destroy_obj.append(sun_e_addw)
destroy_obj.append(mon_m_addw)
destroy_obj.append(mon_e_addw)
destroy_obj.append(tue_m_addw)
destroy_obj.append(tue_e_addw)
destroy_obj.append(wed_m_addw)
destroy_obj.append(wed_e_addw)
destroy_obj.append(thu_m_addw)
destroy_obj.append(thu_e_addw)
destroy_obj.append(fri_m_addw)
destroy_obj.append(sat_e_addw)
root= Tk()
filemenu = Menu(root)
root.config(menu=filemenu)
filemenu.add_command(label = "Add worker" , command = Add_worker)
filemenu.add_command(label = "Worker list")
filemenu.add_command(label = "Schedule")
root.mainloop()
Ответы (1 шт):
Автор решения: Давид
→ Ссылка
Я разобрался как это делать . То , что я спрашивал , называется выпадающим списком и отвечает за это виджет Combox() , а не Listbox() . В интернете есть куча документации по работе виджета Combox()