Tkinterpack
管理器会尝试将父窗口小部件的大小调整为正确的大小,以包含其子窗口小部件,并且默认情况下不会更大。画布就在其中- 但它与按钮的尺寸完全相同,因此是不可见的。
如果要在画布上放置小部件 而不 导致画布动态调整大小,则需要以下Canvas.create_window()
功能:
# ... snip ...
button1 = Button(self, text = "Quit", command = self.quit, anchor = W)
button1.configure(width = 10, activebackground = "#33B5E5", relief = FLAT)
button1_window = canvas1.create_window(10, 10, anchor=NW, window=button1)
这将在(10, 10)
相对于画布的左上角创建您的按钮,而无需调整画布本身的大小。
请注意,您可以将window
参数替换为对任何其他Tkinter小部件的引用。需要注意的是:命名的小部件必须是包含画布的顶级窗口的子级,或者是位于同一顶级窗口中的某些小部件的子级。