2012-03-11 115 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

相關問題