2017-09-16 11 views
0

オブジェクトクラスで定義されていない、ソースは次のように起動します:NameError:名「TKが」私はアプリケーションを構築した

from tkinter import Text 
from tkinter import Label  

from AESEncDec import * 
from MD5Hashing import * 
from RSAEncDec import * 

color = 'lightblue' #color our background 

class Application(Frame): 

    def __init__(self, root=None): 

     Frame.__init__(self, root) 
     self.frame_width = 700 
     self.frame_height = 400 

しかし、それの最後の部分は実行できません。

#create object TK class 
the_window = Tk(className = " Cryptographic") 
#create object Application 
app = Application(the_window) 
#run our Application 
app.mainloop() 

そして、それはNameErrorを与えます:

Traceback (most recent call last): File "/home/artur/Documents/MScProject/MSc Project/Task #179276/main_program.py", line 169, in the_window = Tk(className = " Cryptographic") NameError: name 'Tk' is not defined

この場合、正しく定義する必要がありますか?

+0

Tkをインポートする必要がありますか? – AK47

+0

これはあなたの[前の質問](https://stackoverflow.com/questions/46252200/nameerror-name-frame-is-not-defined-python)とまったく同じ問題ですインポートするのを忘れましたか? トレースバック(最新の呼び出しの最後): –

答えて

1

あなたはimport文欠場:from tkinter import Tk

の競合を回避する最善の方法は、それを短くするために最終的に別名で、モジュール全体をインポートすることである(ただし、あなたがきたどこにでもtk.を追加することを忘れないでくださいtkinterウィジェットと呼ばれる):

import tkinter as tk 

from AESEncDec import * 
from MD5Hashing import * 
from RSAEncDec import * 

color = 'lightblue' #color our background 

class Application(tk.Frame): 

    def __init__(self, root=None): 

     tk.Frame.__init__(self, root) 
     self.frame_width = 700 
     self.frame_height = 400 


#create object TK class 
the_window = tk.Tk(className = " Cryptographic") 
#create object Application 
app = Application(the_window) 
#run our Application 
app.mainloop() 
+0

それはエラーの新しいタイプミスを与える the_windowで ファイル "/ホーム/アルトゥール/ドキュメント/ MScProject /修士課程プロジェクト/タスク#179276/main_program.py"、ライン170を、 = Tk(className = "Cryptographic") TypeError: 'module'オブジェクトは呼び出し可能ではありません 入力とは何ですか? –

+0

'import tkinter as tk'で小文字が使用されていることに気付き、次に' tk.Tk(className = "Cryptographic") 'が必要です。 'Tk'はメインクラスで、' tk'はモジュールです。混乱しているエイリアスのため残念です。かなり普通です – PRMoureu

+0

Tkとtkinterを最後にインポートするように変更しました。 #オブジェクトを作成するTKクラス the_window = tk.Tk(クラス名= "暗号") #createオブジェクトのアプリケーション アプリ=アプリケーション(the_window) 我々のアプリケーション app.mainloop() #run私はまだ同じエラーを取得します:( –

関連する問題