Первая проблема заключается в том, что вы помещаете холст в кадр (экземпляр Interface
), но вы никогда не делаете этот кадр видимым. Поскольку этот кадр предназначен для всего UI (я предполагаю), вы можете сделать это:
root = Tk()
ui = Interface(root)
ui.pack(side="top", fill="both", expand=True)
ui.mainloop()
Обратите внимание, что я вызываю pack
на объект ui
.
Это разрешает только половину проблемы. Вторая проблема заключается в том, что вы не делаете холст видимым в своем родителе. Вы можете использовать для этого pack
, grid
или place
. Здесь я использую pack
:
self.canvas.pack(side="top", fill="both", expand=True)
У вас, похоже, есть и третья проблема: вы создаете меню, но вы не заставляете его быть видимым. В случае меню вы обычно указываете его как значение атрибута menu
в корневом окне. В вашем случае вы можете сделать что-то вроде этого:
self.master.configure(menu=self.m)