Python中_tkinter.TclError无效命令名问题求助(Frame销毁相关)
CustomTkinter重建Frame后清空输入框触发_tkinter.TclError
我是来自丹麦的Thomas,建筑工程学士,业余自学Python。最近用CustomTkinter开发程序时碰到个问题:
- 第二次创建
ForsideMenuFrame或LastarrangementMenuFrame后,把任一输入框设为空字符串,就会触发_tkinter.TclError,错误提示为invalid command name - 我推测问题和Frame的销毁操作有关,程序没崩溃,但会持续抛出报错
- 试过导入
_tkinter并捕获TclError,没能解决问题
错误信息
_tkinter.TclError: invalid command name ".!frame.!forsidemenuframe.!ctkentry"
相关代码片段
# Frame切换核心逻辑 def switch_frame(self, frame_name): # 销毁当前显示的Frame if hasattr(self, 'current_frame'): self.current_frame.destroy() # 实例化目标Frame并显示 if frame_name == "forside": self.current_frame = ForsideMenuFrame(self) elif frame_name == "lastarrangement": self.current_frame = LastarrangementMenuFrame(self) self.current_frame.pack(fill="both", expand=True) # 输入框所在Frame示例 class ForsideMenuFrame(ctk.CTkFrame): def __init__(self, parent): super().__init__(parent) self.input_entry = ctk.CTkEntry(self, placeholder_text="请输入内容") self.input_entry.pack(pady=15) # 绑定输入变更事件 self.input_entry.bind("<KeyRelease>", self.handle_input_change) def handle_input_change(self, event): current_content = self.input_entry.get() if not current_content: # 输入框清空时执行的逻辑,此处触发报错 pass
界面截图
内容的提问来源于stack exchange,提问作者ThomasB
相关产品推荐
相关产品推荐

