我刚刚Tkinter
在调试程序时遇到了一个奇怪的行为。如果一个Frame
对象是在一个Canvas
对象之前创建的,然后又插入到那个对象中Canvas
,它就无法显示。但是,如果创建顺序颠倒(先到Canvas
后Frame
),Frame
则正确显示 中的内容。
例如,以下代码运行良好:
from Tkinter import *
app = Frame()
canvas = Canvas(app)
frame = Frame(app)
Label(frame, text = 'aaaa').pack()
Label(frame, text = 'bbbb').pack()
canvas.create_window(0, 0, anchor = NW, window = frame)
canvas.grid()
app.grid()
app.mainloop()
但是如果初始化顺序颠倒了,比如:
frame = Frame(app)
canvas = Canvas(app)
你得到的只是一个空白窗口。
这是故意设计的行为(如果是,为什么?),还是我刚刚发现了一个错误Tkinter
?