Когда вы используете pack()
, tkinter поместит кнопку на свой мастер (корень), и область, где нарисован холст, уже занята.
Чтобы разместить кнопку на холсте, вы должны использовать функцию create_window()
на холсте:
from tkinter import *
root = Tk()
c = Canvas(root,width=200,height=150,bg='blue')
c.pack(side = 'top')
c.create_text(100, 50, anchor='c', fill='orange', font='Times 28', text='List')
button = Button(root, text="Quit", command=root.destroy)
canvas_widget = c.create_window(100, 100, window=button)
root.mainloop()