Mar-03-2024, 03:20 AM
Hello! I'm using tkinter, customtkinter (ctk), and CTkScrollableDropdown (ctksd). This last library adds the ability to easily implement scrollable dropdown menus to various ctk elements. I followed ctksd's installation instructions, imported the library, and called the CTkScrollableDropdown class after my ctk element like in their example. However, I'm getting this error after I delete the widget. The error keeps spamming with every interaction with the GUI thereafter.
Error:Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\walde\AppData\Local\Programs\Python\Python310\lib\tkinter\__init__.py", line 1921, in __call__
return self.func(*args)
File "C:\Users\walde\Desktop\Benjamin\Engineering\Contracts\20240202_client management software\src\v1\CTkScrollableDropdown\ctk_scrollable_dropdown.py", line 51, in <lambda>
self.attach.winfo_toplevel().bind("<ButtonPress>", lambda e: self._withdraw() if not self.disable else None, add="+")
File "C:\Users\walde\Desktop\Benjamin\Engineering\Contracts\20240202_client management software\src\v1\CTkScrollableDropdown\ctk_scrollable_dropdown.py", line 140, in _withdraw
if self.winfo_viewable() and self.hide:
File "C:\Users\walde\AppData\Local\Programs\Python\Python310\lib\tkinter\__init__.py", line 1267, in winfo_viewable
self.tk.call('winfo', 'viewable', self._w))
_tkinter.TclError: bad window path name ".!ctkscrollabledropdown"
MRE:import tkinter as tk import customtkinter as ctk import CTkScrollableDropdown as ctksd def clear_screen_widgets(): # deletes all present widgets widgets = root.winfo_children() # Get a list of all the widgets in root for widget in widgets: widget.destroy() def goto_screen_client_info_2(values): clear_screen_widgets() root = ctk.CTk() combobox_client_info_1 = ctk.CTkComboBox(master=root, values='foo') combobox_client_info_1.place(relx=0.5, rely=0.33, relwidth=.4, anchor=tk.CENTER) combobox_client_info_1.bind("<Return>", goto_screen_client_info_2) # run command when enter key is pressed ctksd.CTkScrollableDropdown(combobox_client_info_1, values='foo', justify="left", button_color="transparent", autocomplete=True) root.mainloop()I suspect this might have to do with the fact that no parent is passed to CTkScrollableDropdown. Any ideas? Is there a safer method for deleting a widget that doesn't lead to this error?