本帖最后由 阿奇_o 于 2022-5-24 16:35 编辑
原因:不是canvas对象不见了,而是它 被frame给占满了—— 被完全挡住了!
其次是,原来的 canvas.pack(expand=True, ) 也受到了 frame.pack() 的影响。
解决:要看见,就要自己设置一个合适的"边距"( padx 或 pady ), 如
from tkinter import *
root = Tk()
root.geometry('400x400')
canvas = Canvas(root, width=200, height=200, bg='green')
canvas.pack(expand=True, anchor='center')
frame = Frame(canvas, bg='yellow', borderwidth=5)
# canvas.create_window((0,0), window=frame, anchor='nw')
# frame.pack() # 默认没有padx=0, pady=0, frame会占满整个canvas, 从而"看不见"
frame.pack(padx=50, pady=20) # 设置边距后,即可看见
todo1 = Label(frame, text='new', bg='lightgrey', fg='black')
todo1.pack()
root.mainloop()
|