我在以下Python 3 tkinter代码中得到错误"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()
代码本身设计用于创建一个文本框(旁边有文本)、一个用于文本框的输入按钮和一个退出按钮。当在文本框中输入文本并按下回车键时,会出现一个消息框,告诉用户他们输入了什么。退出按钮只是退出脚本。
如何修复我遇到的错误(我知道错误的含义,只是不知道在这种情况下如何修复)。注意,我是tkinter和GUI代码的新手。
类似的东西呢:
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,所以我不能检查它。但我希望它会有所帮助。
将displayText
的定义移动到createWidgets
方法中。