2014-02-12 2 views
0

Пожалуйста, помогите исправить сценарий:Как получить дочернее окно после нажатия кнопки?

import tkinter 


class Application(tkinter.Frame): 

    def __init__(self, parent): 
     tkinter.Frame.__init__(self, parent, bg='yellow') 
     self.pack(side = 'top', fill = 'x') 
     self.make_elements() 

    def make_elements(self): 
     tollbarFrame=tkinter.Frame(self) 
     tollbarFrame.pack(side='top', fill='x') 

     tool3=tkinter.Button(tollbarFrame, text='Add record', command=self.add_record()) 
     tool3.pack(side='left') 


     contentFrame=tkinter.Frame(self) 
     contentFrame.pack(side='top', fill='x') 

     butt = tkinter.Button(contentFrame, text='qwerer') 
     butt.pack() 

    def add_record(self): 
     child = tkinter.Toplevel() 
     bu = tkinter.Button(child, text='sdfsf') 
     bu.pack() 


if __name__ == '__main__': 
    root = tkinter.Tk() 
    root.title('dvd list') 
    root.geometry('700x500') 
    Application(root) 
    root.mainloop() 

После загрузки окна ребенок показывает «ребенок». Моя идея для этого дочернего окна должна появиться после того, как пользователь нажмет кнопку «добавить запись».

ответ

1

При создании кнопки не вызывайте функцию обратного вызова. Измените следующим образом:

tool3=tkinter.Button(tollbarFrame, text='Add record', command=self.add_record) 
Смежные вопросы