这是我的代码:
import sys
import tkinter as tk
import os
mGui = tk.Tk()
mGui.geometry("300x300")
mGui.title("YourBowlingSpeed")
mlabel1 = Label (text = "my label")
mlabel1.place (x = 50,y = 150)
我改变了使用*导入的习惯,但这不起作用,它向我显示错误。 Traceback(最近一次调用最后一次): 文件“C:\ Python33 \ Projects \ YorBowlingSpeed-.py”,第7行,in mlabel1 =标签(text =“mylabel”) NameError:名称'Label'未定义
答案 0 :(得分:2)
您尚未将类Label
直接导入全局命名空间,只导入了模块。要参考它,你必须这样做:
tk.Label(text = "my label")
或者,您可以导入该类:
from tkinter import Tk, Label
虽然我从未与Tkinter合作,但我经常看到语法:
from tkinter import *
导入每个类,因此您不需要将tk.
放在类名后面。请注意,这可能存在风险,就好像您已经有一个名为Label
的变量一样,它将被覆盖。
答案 1 :(得分:2)
现在您正在使用
import tkinter as tk
您需要引用tk
来创建tkinter
小部件,而不是
mlabel1 = Label (text = "my label")
使用
mlabel1 = tk.Label (text = "my label")
# ^^^
很高兴你切换到这个模式!现在,任何阅读代码的人都会立即知道Label
是来自tkinter
的函数。它是明确的,易于阅读,不会导致命名空间冲突,并且更容易维护代码。