In [3]:
# www.plus2net.com
# download updated script at https://www.plus2net.com/python/tkinter-OptionMenu-proj4.php
import sqlite3
my_conn = sqlite3.connect('my_db.db')
###### end of connection ####
import tkinter as tk
my_w = tk.Tk()
my_w.geometry("200x200")  # Size of the window 
my_w.title("www.plus2net.com")  # Adding a title

query="SELECT cat_id,category  FROM category"
r_set=my_conn.execute(query);
my_dict1=dict((x,y) for x,y in r_set)

#print(my_dict1)
options1 = tk.StringVar(my_w)
#options.set(my_dict1[0]) # default value
om1 =tk.OptionMenu(my_w, options1, *my_dict1.values())
om1.grid(row=2,column=5)

options2 = tk.StringVar(my_w)
my_list2=['Subcategory list']
options2.set(my_list2[0])
om2 =tk.OptionMenu(my_w, options2, *my_list2)
om2.grid(row=2,column=6)

def my_show(*args):
    for i,j in my_dict1.items():
        if j==options1.get():
            cat_id=i
    options2.set('') # remove default selection only, not the full list
    om2['menu'].delete(0,'end') # remove full list 
    query="SELECT subcategory   FROM subcategory  WHERE cat_id='"+str(cat_id)+"'"
    
    r_set2=my_conn.execute(query);
    
    my_list2 = [r for r, in r_set2] # create a  list 
    
    #print(my_list2)
    for opt in my_list2: 
        om2['menu'].add_command(label=opt, command=tk._setit(options2, opt))
    options2.set(my_list2[0]) # default value set 

options1.trace('w',my_show)
my_w.mainloop()
Fruits Colors Games Vehicles
In [2]:
r_set=my_conn.execute('''select name from sqlite_master 
		where type = 'table' ''')
for row in r_set:
    r_set=my_conn.execute("SELECT count(*) as no from "+ row[0])
    data_row=r_set.fetchone()
    print(row[0],"(",data_row[0],")")
student ( 35 )
category ( 4 )
subcategory ( 16 )
In [ ]: