Apr-25-2020, 08:48 PM
Hi all,
I am getting the error _tkinter.TclError: bad window path name ".!toplevel.!frame.!combobox
When I click on the "Columns" button the first time, it opens up a new window no problem.
When I click on the "Exit" button to close out the window and click on the "Columns" button again, I get the bad window error.
It is failing on line 19: column_values[i][j].grid(row=i,column= j)
Below is the code.
Any help would be appreciated.
Thanks in advance.
I am getting the error _tkinter.TclError: bad window path name ".!toplevel.!frame.!combobox
When I click on the "Columns" button the first time, it opens up a new window no problem.
When I click on the "Exit" button to close out the window and click on the "Columns" button again, I get the bad window error.
It is failing on line 19: column_values[i][j].grid(row=i,column= j)
Below is the code.
Any help would be appreciated.
Thanks in advance.
from tkinter import *
from tkinter import ttk
import tkinter.font as font
def get_columns(field_names):
new_window = Toplevel(mw)
new_window.wm_title("Select Columns")
new_window.geometry('900x500+250+150')
frame3 = Frame(new_window)
framebot = Frame(new_window)
frame3.pack(side=TOP,fill=X)
framebot.pack(side=BOTTOM,fill=X)
for i in range(0,max_columns):
column_values.append([])
j = 0
column_values[i].append(ttk.Combobox(frame3,values=field_names))
column_values[i][j].grid(row=i,column= j)
exit_button = Button(framebot,text='Exit',font=("Times",16),command=new_window.destroy).pack(side="right")
# Start the main program here
if __name__ == "__main__":
current_file = __file__
mw=Tk()
mw.geometry('900x500+200+150')
mw.title(current_file)
frame1 = Frame(mw)
framebot = Frame(mw)
frame1.pack(side=TOP,fill=X)
framebot.pack(side=BOTTOM,fill=X)
w1 = Label(frame1, text="Database Name: ",font=("Times",16)).pack(side="left")
dbase = StringVar()
a1 = ttk.Combobox(frame1,width=40,font=("Times",16),textvar=dbase)
a1.pack(side="left")
field_names = ["A.a","B.b","C.c"]
max_columns = 10
column_values = []
btn2 = Button(framebot,text='Columns',font=("Times",16),command=lambda: get_columns(field_names)).pack(side="left")
btn6 = Button(framebot,text='Exit',font=("Times",16),command=mw.quit).pack(side="right")
mw.mainloop()
