Tkinter出现AttributeError: 'NoneType'对象无'set'属性问题求助
Tkinter文本编辑器滚动条报错问题解析
我正在学习Tkinter,跟着教程制作简易文本编辑器,以下是出现问题的代码:
scroll = Scrollbar(stimulator_window).pack(side=RIGHT,fill=Y) Editor=Text(stimulator_window,width=400,height=450,yscrollcommand=scroll.set).pack(fill=BOTH) scroll.config(command=Editor.yview)
运行后触发如下错误:
AttributeError: 'NoneType' object has no attribute 'set'
环境信息:Python 3.10.3、Microsoft Windows [Version 10.0.22000.795]、VSCode
问题原因
Tkinter组件的pack()、grid()、place()这类布局方法返回值都是None。你把组件创建和布局方法链式调用后赋值给变量,导致scroll和Editor实际存储的是None,而非对应的组件实例。
当代码执行到yscrollcommand=scroll.set时,scroll是None,自然会抛出“'NoneType' object has no attribute 'set'”的错误。
修复后的代码
# 拆分组件创建与布局操作 scroll = Scrollbar(stimulator_window) scroll.pack(side=RIGHT, fill=Y) Editor = Text(stimulator_window, width=400, height=450, yscrollcommand=scroll.set) Editor.pack(fill=BOTH) # 配置滚动条与文本框的联动 scroll.config(command=Editor.yview)
内容的提问来源于stack exchange,提问作者fox tech.
相关产品推荐
相关产品推荐

