这是如何显示错误的?

时间:2013-08-21 11:48:31

标签: python tkinter

这是我的代码:

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'未定义

2 个答案:

答案 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的函数。它是明确的,易于阅读,不会导致命名空间冲突,并且更容易维护代码。