Во-первых, вы не можете передать my_list
в tk.Tk()
.
Во-вторых, ваш MyWindow
требует двух параметров: parent
и list
(хотя вы должны назвать этот второй параметр по-другому) .
В-третьих, вызов диспетчера геометрии (pack
, grid
или place
) во время создания виджета - плохая практика, которой следует избегать.
Здесь Вот как должен выглядеть последний блок кода:
root= tk.Tk()
mywindow = MyWindow(root, my_list)
mywindow.pack()
В результате появится окно с меткой внизу. Если вы хотите, чтобы это было вверху, измените порядок, в котором вы упаковываете элементы во фрейме, и / или явно укажите, где они должны быть go:
label.pack(side="top", fill="x")
canvas.pack(side="bottom", fill="both", expand=True)