2012-03-11 13 views
-1

が、私はエラーを取得する「NameError: 『entryWidgetは』が定義されていないグローバル名」:Pythonの3エラー:「NameError:グローバル名 『entryWidget』は定義されていません」

from tkinter import * 
import tkinter 

def displayText(): 
    tkinter.messagebox.showinfo("Tkinter Entry Widget", "Text value =" + entryWidget) 

class Application(Frame): 

    def createWidgets(self): 

     root.title("TITLE") 

     textFrame = Frame(root) 
     entryLabel = Label(textFrame) 
     entryLabel["text"] = "Enter the text:" 
     entryLabel.pack(side=LEFT) 

     entryWidget = Entry(textFrame) 
     entryWidget["width"] = 50 
     entryWidget.pack(side=LEFT) 
     textFrame.pack() 
     button = Button(root, text="Submit", command=displayText) 
     button.pack() 

     self.QUIT = Button(self) 
     self.QUIT["text"] = "QUIT" 
     self.QUIT["fg"] = "red" 
     self.QUIT["command"] = self.quit 
     self.QUIT.pack() 


    def __init__(self, master=None): 
     Frame.__init__(self, master) 
     self.pack() 
     self.createWidgets() 

root = Tk() 
app = Application(master=root) 
app.mainloop() 
root.destroy() 
のPython 3のTkinterの次のコードで

コード自体は、テキストボックス(隣にテキストがある)、テキストボックスの入力ボタン、および終了ボタンを作成するように設計されています。テキストボックスにテキストを入力してEnterキーを押すと、ユーザーに入力した内容を知らせるメッセージボックスが表示されます。終了ボタンは、スクリプトを終了するだけです。

エラーの内容を修正するにはどうすればよいですか(エラーが何を意味しているのか分かりますが、このシナリオで修正する方法はわかりません)。私はtkinterとGUIコードが新しくなっています。

答えて

3

。しかし、私はそれが助けてくれることを望みます

+0

完全に動作します。ありがとう! –

0

displayTextの定義をcreateWidgetsメソッドに移動します。私はそれをチェックすることはできませんので

from tkinter import * 
import tkinter 


class Application(Frame): 

    def createWidgets(self): 

     root.title("TITLE") 

     textFrame = Frame(root) 
     entryLabel = Label(textFrame) 
     entryLabel["text"] = "Enter the text:" 
     entryLabel.pack(side=LEFT) 

     self.entryWidget = Entry(textFrame) 
     self.entryWidget["width"] = 50 
     self.entryWidget.pack(side=LEFT) 
     textFrame.pack() 
     button = Button(root, text="Submit", command=self.displayText) 
     button.pack() 

     self.QUIT = Button(self) 
     self.QUIT["text"] = "QUIT" 
     self.QUIT["fg"] = "red" 
     self.QUIT["command"] = self.quit 
     self.QUIT.pack() 

    def displayText(self): 
     tkinter.messagebox.showinfo("Tkinter Entry Widget", "Text value =" + self.entryWidget.get()) 

    def __init__(self, master=None): 
     Frame.__init__(self, master) 
     self.pack() 
     self.createWidgets() 

root = Tk() 
app = Application(master=root) 
app.mainloop() 
root.destroy() 

私はここのTkinterを持っていない:そのようなことについてどう

+0

次のエラーが表示されます。 'TypeError:Entryオブジェクトをstr暗黙的に変換できません。 ' –

関連する問題