我知道有一个类似的问题,但我想知道如何在没有任何全局代码的情况下做到这一点。我希望在按下按钮时弹出一个新条目(以及旁边的标签)。
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()
你的代码实际上做了你想要的。唯一的问题是您在按钮创建行中通过添加 ()
调用 frame.add
函数而不是将其作为命令传递。去掉那些括号,你就没事了。
b0 = Button(frame, text ="Add entry", command = frame.add) #no parenthesis here
如果您想要弹出窗口,则需要创建一个Toplevel
并将您想要的内容放入其中。( Entry
和 Label
适用于您的案件)
def add(self):
self.top = Toplevel(self)
new_entry = Entry(self.top)
new_entry.grid()