2011-08-20 10 views
1

このコードを実行しようとすると、常にエラーメッセージが表示されます。 私はTkinterのドキュメントを読んでいます。私は人が入力を開始すると消えるフィールドにテキストを挿入しようとしています。ここにコードがあります。tkinter:グローバル名が定義されていません

class MyGrid(Frame): 
    def __init__(self, win=None): 
     Frame.__init__(self, win) 
     self.grid() 
     self.mkWidgets() 

    def mkWidgets(self): 
     self.mytext = StringVar() 
     self.mytext.set("Enter text here") 
     self.e = Entry(bg='orange', textvariable=mytext, relief=SUNKEN, width=45)   
     self.e.grid(row=0, column=0) 

app = MyGrid() 

app.mainloop() 

私はいつもこのエラーが出る:

NameError: global name 'mytext' is not defined 

答えて

1

デバッグの私の最初のルール:エラーがリテラルの真実を語っていると仮定します。この場合、mytextは定義されていません。あなたのコードを見ると、同意する必要があります。mytextという名前のグローバル変数を定義していません。

doただし、self.mytextという名前を定義します。

self.e = Entry(bg='orange', textvariable=self.mytext, relief=SUNKEN, width=45) 
+0

私は実際に右のこのスレッドを掲示した後、それを考え出した。あなたは、次のコード行にすることを使用する必要があります – userend

-1

使用この:

import tkinter 
root = tkinter. Tk()