принято создавать интерфейсы через классы. это делается для того чтобы:
- можно было при желании удобным образом вставить готовый интерфейс в определённое место программы.
- можно было клонировать функциональность, не дублируя код
- код интерфейса находился в определённом контексте(то есть отсутствовали бы конфликты переменных)
НО что я никак не могу понять, так это зачем класс нужно наследовать от Frame. вот например распространённый шаблон:
import tkinter import tkinter.messagebox class Quitter(tkinter.Frame): def __init__(self, parent=None): tkinter.Frame.__init__(self, parent) self.pack() widget = tkinter.Button(self, text='Quit', command=self.quit) widget.pack(side='left', expand='yes', fill=tkinter.BOTH) def quit(self): ans = tkinter.messagebox.askokcancel('Verify exit', "Really quit?") if ans: tkinter.Frame.quit(self) if __name__ == '__main__': Quitter().mainloop()