我尽可能多地阅读有关此内容的文章,但找不到任何可以帮助我的内容。在我的代码中,我创建了一个类EntryWidget,其中包含一个条目小部件,在我的主应用程序控制器中,我创建了一个名为self.entry的类EntryWidget的实例。我正在尝试编写一个方法,该方法将是一个ok按钮的命令,它主要从入口小部件中获取文本,然后对其进行操作。此代码来自主类Controller:
def ok(self):
self.input = self.entry.get()
self.command = ""
错误:
AttributeError: EntryWidget instance has no attribute 'get'
这个想法是输入文本,然后点击ok按钮调用此方法。对不起,如果以前曾经问过,但我已经阅读了其他回复,他们也没有帮助。
感谢
答案 0 :(得分:2)
如果您的EntryWidget
课程不是Tkinter.Entry
的子类,则需要为get()
课程定义EntryWidget
方法。该错误表明self.entry
是EntryWidget
个实例,但不包含get()
方法。
答案 1 :(得分:0)
我自己写了一个小函数,允许用户在tkinter.Entry中输入一个值,然后函数返回用户的输入。
def getInput(title, message):
class inputGUI(tkinter.Tk):
def __init__(self):
tkinter.Tk.__init__(self)
self.title(title)
self.l=tkinter.Label(self,text=message, width = 30, pady = 10, padx = 5).pack()
self.e=tkinter.Entry(self, width = 30)
self.e.pack()
self.e.focus()
self.gap=tkinter.Label(self,text="", width = 50, pady = 0, padx = 5).pack()
self.b=tkinter.Button(self,text='Submit',command=self.cleanup, width = 20, pady = 10, padx = 5).pack()
self.gap=tkinter.Label(self,text="", width = 30, pady = 0, padx = 5).pack()
def cleanup(self):
self.userInput=self.e.get()
self.destroy()
root = inputGUI()
root.focus()
root.wait_window(root)
valueOut = root.userInput
return valueOut
注意:我知道没有条目验证,但这应该很容易添加。