Python - 按下按钮时添加新的输入框(Tkinter)W / O全局代码

时间:2015-01-24 11:32:49

标签: python button tkinter add tkinter-entry

我知道有一个类似的问题,但我想知道如何在没有任何全局代码的情况下这样做。 我想在按下按钮时弹出一个新条目(以及旁边的标签)。

class Options(Frame):
    def __init__(self, parent):
        Frame.__init__(self, parent)
        self.parent = parent

    def add(self):
        new_entry = Entry(self)
        new_entry.grid()

def main():
    t = Tk()
    frame = Options(t)
    frame.pack()

    b0 = Button(frame, text ="Add entry", command = frame.add())
    b0.grid()

1 个答案:

答案 0 :(得分:1)

您的代码实际上可以满足您的需求。唯一的问题是您通过添加frame.add在按钮创建行中调用()函数而不是将其作为命令传递。删除那些括号,你就可以了。

b0 = Button(frame, text ="Add entry", command = frame.add) #no parenthesis here

如果您想要弹出窗口,则需要创建Toplevel并将所需内容放入其中。(EntryLabel适用于您的情况)

def add(self):
    self.top = Toplevel(self)
    new_entry = Entry(self.top)
    new_entry.grid()