Python Tkinter - 未定义全局名称Tk()

时间:2012-01-21 00:27:34

标签: python tkinter

我一直在python中关注tkinter接口的教程,它使用以下代码来为程序声明一个根小部件,然后有子小部件:

root = Tk() 

我在尝试解释这段代码时遇到以下错误:

Global name Tk() is not defined 

我很确定这是因为自教程以来tkinter已经改变了;我找不到任何其他不使用这样的代码片段的教程,所以他们也不会工作。

我的问题是上下文简单,但搜索,我找不到答案; 我怎样才能绕过这个:改变了tkinter语法的内容以及声明根小部件的新方法是什么?此外,如果有人知道tkinter警告我你是否可以将子窗口小部件添加到根目录的方式也发生了变化,那将是很棒的。

感谢所有回复~Michael

4 个答案:

答案 0 :(得分:6)

您可能忘了顶部from Tkinter import *

答案 1 :(得分:2)

或者,有

import Tkinter

import Tkinter as tk

修改:通常,您想要使用成语from <library> import <module>,因此对于您的具体示例from Tkinter import Tk可行。

只允许您在代码中键入tk.Button,而不是Tkinter.Button。如果您使用的是Python 3.x,那么该库是小写的。

import tkinter

对于一般导入问题,我在SO上看到了很多引用的Importing Python Modules链接。

答案 2 :(得分:1)

您似乎已将文件命名为 tkinter.py 。您无法使用要导入的模块命名文件。 Python将尝试从现有文件而非tkinter模块导入。将会有模块名称collison。尝试重命名您的文件名。

答案 3 :(得分:-1)

from Tkinter import *
root = Tk()