【问题标题】:Tkinter: NameError: name 'tk' is not definedTkinter:NameError:未定义名称'tk'
【发布时间】:2013-11-04 10:56:26
【问题描述】:

我一直在关注如何创建图形用户界面 (GUI) 的教程,以便习惯它,因为我将来会使用它。大多数教程在第一行使用这些命令:

from tkinter import *

root = tk()
root.title("Simple GUI")
root.geometry("200x100")
root.mainloop()

如果我运行这个简单的代码,我会收到以下错误:

文件

“C:/Users/Gerard/Dropbox/Master_Thesis_Gerard_Pujol/Python_Tryouts/creting_simpleGUI.py”,第 11 行,在 根=tk()

NameError: name 'tk' is not defined

在那之后我改变了我的代码,所以我使用了类似的东西:

import tkinter as tk

root = tk()
root.title("Simple GUI")
root.geometry("200x100")
root.mainloop()

现在,错误如下:

“C:/Users/Gerard/Dropbox/Master_Thesis_Gerard_Pujol/Python_Tryouts/creting_simpleGUI.py”,第 11 行,在 根=tk()

TypeError: 'module' 对象不可调用

你知道出了什么问题吗?请问你能帮帮我吗?

我正在使用 Spyder for Python 3.3,但我想这不是问题。

【问题讨论】:

    标签: user-interface python-3.x tkinter runtime-error spyder


    【解决方案1】:

    您看到的教程可能是针对 Python 2 的。在 Python 3 中,它们更改了命名约定。所以不是 P2 中的 root = tk(),而是 P3 中的 root = Tk()(Tk() 是一个类,因此大写 T)。

    在你的第二个例子中,你应该在 import 语句之后写 root = tk.Tk()

    【讨论】:

    • 它运行!非常感谢 Olav,我快疯了!
    • 在 python 2 中也是Tk。
    【解决方案2】:

    我刚刚遇到了一个类似的问题,我发现这是因为我在 Spyder 中的 Python 控制台窗口连接到了我之前正在处理的另一个 .py 文件,所以我关闭了它并在 Spyder 中打开了一个新的 Python 控制台并问题消失了。

    【讨论】:

      猜你喜欢
      • 2014-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-23
      • 1970-01-01
      • 1970-01-01
      • 2014-12-21
      相关资源
      最近更新 更多