2013-10-25 65 views
0

我一直在關注如何創建圖形用戶界面(GUI)的教程,以便習慣它,因爲我將來會使用它。大多數教程在第一線使用以下命令:Tkinter:NameError:名稱'tk'未定義

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", line 11, in root=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", line 11, in root=tk()

TypeError: 'module' object is not callable

你知道怎麼回事嗎?請問你能幫幫我嗎?

我使用Spyder for Python 3.3,但我想這不是問題。

回答

0

您看過的教程可能適用於Python 2.在Python 3中,它們改變了命名約定。因此P2中的root = tk()而不是P3中的root = Tk()(Tk()是一個類,因此是資本T)。

在你的第二個例子你應該import語句

+0

它運行!非常感謝奧拉夫,我瘋了! – gpujol

+1

它也是python 2中的'Tk'。 –

0

我剛剛也有類似的問題,我發現是因爲Spyder的我的Python控制檯窗口被連接到不同的.py文件後寫root = tk.Tk()我之前正在開發中,所以我關閉了它並在Spyder中打開了一個新的python控制檯,問題消失了。