为什么运行Tkinter代码时报错NameError: name 'Label' is not defined
报错触发原因
- 导入调用不匹配:你使用
import tkinter as tk将tkinter模块别名导入为tk,所有tkinter内置的组件类、方法都需要添加tk.前缀才能被Python识别,你代码中直接调用未声明的Label变量,因此触发NameError。 - 存在隐藏布局冲突:你同时对同一个组件调用了
place()和pack()两种布局管理器,tkinter规定同一组件只能使用一种布局方式,即使解决了变量未定义的问题,后续也会触发布局冲突报错。另外place()方法返回值为None,你将Label(xxx).place(xxx)直接赋值给testlabel,会导致testlabel变量值为空,无法调用后续的pack()方法。
修复方案
调整代码如下即可正常运行:
import tkinter as tk root = tk.Tk() root.geometry('800x600') root.title('Test project...') # 调用组件加tk前缀,仅保留一种布局方式,这里以place为例 testlabel = tk.Label(root, text= "Hello world!!") testlabel.place(x = 40, y = 130) root.mainloop()
内容的提问来源于stack exchange,提问作者Bence Turi
相关产品推荐
相关产品推荐

