Tkinter登录成功后销毁主界面报AttributeError错误如何解决?
问题修复方案
错误原因
你触发AttributeError: 'function' object has no attribute 'destroy'的核心原因是:销毁主界面时误用了函数名main_screen调用destroy方法,main_screen是你定义的生成主窗口的函数,不是Tk窗口实例。你已经在main_screen函数中通过global screen声明,把实际的Tk主窗口实例存储到了全局变量screen中,直接调用这个变量的destroy方法即可。
修复代码
将delete2函数修改为如下内容即可:
def delete2(): screen_3.destroy() screen.destroy()
可选优化建议
- 尽量减少全局变量的使用,可以通过类封装窗口实例,避免变量和函数名混淆的问题
- 如果销毁登录界面后需要打开新的业务界面,可以在
screen.destroy()执行完成后,再初始化新的业务窗口组件
内容的提问来源于stack exchange,提问作者Edwin
相关产品推荐
相关产品推荐

