Python 特金特在画布底部留白
我试图用Python3将对象放在tkinter[8.6]下的画布中。左上角下方超过256像素的所有内容均为空白。不知道为什么。下面是一个精简的代码,显示了我的意思: Python 3.7Python 特金特在画布底部留白,python,canvas,tkinter,Python,Canvas,Tkinter,我试图用Python3将对象放在tkinter[8.6]下的画布中。左上角下方超过256像素的所有内容均为空白。不知道为什么。下面是一个精简的代码,显示了我的意思: Python 3.7 如果您为根目录(即绿色)和测试帧(即红色)设置背景色 然后您将看到它不使用全窗口 如果为Test帧设置expand=True self.pack(fill=BOTH, expand=True) 然后您将看到Test使用了完整窗口,但Canvas仍然没有使用完整窗口 如果您还使用expand=True作为C
如果您为
根目录
(即绿色
)和测试
帧(即红色
)设置背景色
然后您将看到它不使用全窗口
如果为Test
帧设置expand=True
self.pack(fill=BOTH, expand=True)
然后您将看到Test
使用了完整窗口,但Canvas
仍然没有使用完整窗口
如果您还使用expand=True
作为Canvas
canvas.pack(fill=BOTH, expand=True)
然后您将看到它使用了完整的窗口,您可以看到256以下的绘图
完整代码:
import tkinter as tk
class Test(tk.Frame):
def __init__(self, root):
super().__init__()
#self['bg'] = 'red'
self.master.title("Canvas Test")
self.pack(fill='both', expand=True)
canvas = tk.Canvas(self)
canvas.pack(fill='both', expand=True)
corner_left = 30
corner_upper = 230
corner_right = corner_left + 400
corner_bottom = corner_upper + 500
canvas.create_rectangle(corner_left, corner_upper, corner_right, corner_bottom)
def main():
root = tk.Tk()
#root['bg'] = 'green'
ex = Test(root)
root.geometry("600x900")
root.mainloop()
if __name__ == '__main__':
main()
非常感谢。这是一个完美的答案,非常清楚,我需要的一切来修复我的代码。
canvas.pack(fill=BOTH, expand=True)
import tkinter as tk
class Test(tk.Frame):
def __init__(self, root):
super().__init__()
#self['bg'] = 'red'
self.master.title("Canvas Test")
self.pack(fill='both', expand=True)
canvas = tk.Canvas(self)
canvas.pack(fill='both', expand=True)
corner_left = 30
corner_upper = 230
corner_right = corner_left + 400
corner_bottom = corner_upper + 500
canvas.create_rectangle(corner_left, corner_upper, corner_right, corner_bottom)
def main():
root = tk.Tk()
#root['bg'] = 'green'
ex = Test(root)
root.geometry("600x900")
root.mainloop()
if __name__ == '__main__':
main()