2012-03-11 80 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的代码

代码本身用于创建文本框(文本旁边有文本),文本框的输入按钮和退出按钮。当在文本框中输入文本并按下输入时,会出现一个消息框告诉用户他们输入的内容。退出按钮只是退出脚本。

如何解决我所得到的错误(我知道错误的含义是什么,只是不知道如何解决这个问题)。请注意,我是tkinter和GUI代码的新手。

回答

3

类似的东西是什么:

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

完美地工作。谢谢! – 2012-03-11 13:48:43

0

displayText的定义转换为createWidgets方法。

+0

然后我得到以下错误:'TypeError:不能'隐式转换'条目'对象到str'。 – 2012-03-11 12:52:38

相关问题