0

我已经尝试尽可能多地阅读有关此的文章,但找不到任何可以帮助我的文章。在我的代码中,我创建了一个 EntryWidget 类,其中包含一个条目小部件,并且在我的应用程序的主类 Controller 中,我创建了一个名为 self.entry 的类 EntryWidget 的实例。我正在尝试编写一个方法,该方法将成为 ok 按钮的命令,该方法主要从条目小部件中获取文本,然后对其进行操作。此代码来自主类 Controller:

     def ok(self):
         self.input = self.entry.get()
         self.command = ""

错误:

     AttributeError: EntryWidget instance has no attribute 'get'

这个想法是输入文本,然后点击调用此方法的确定按钮。抱歉,如果之前有人问过这个问题,但我已经阅读了其他回复,但他们没有帮助。

谢谢

4

2 回答 2

2

如果您的EntryWidget类没有子类Tkinter.Entry,则需要get()为您的类定义方法EntryWidget。错误说这self.entry是一个EntryWidget实例但不包含get()方法。

于 2012-10-06T01:05:23.250 回答
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

注意:我知道没有条目验证,但是这应该很容易添加。

于 2015-04-16T10:11:22.977 回答