Если вы установите цвет фона для root
(т.е. green
) и Test
кадра (т.е.. red
)
class Test(Frame):
def __init__(self, root):
super().__init__()
self['bg'] = 'red'
def main():
root = Tk()
root['bg'] = 'green'
, то вы увидите, что он не используетполное окно
![enter image description here](https://i.stack.imgur.com/Q2hoN.png)
Если вы установите expand=True
для Test
frame
self.pack(fill=BOTH, expand=True)
, то вы увидите, что Test
использует полное окно, но Canvas
по-прежнему не использует полное окно
![enter image description here](https://i.stack.imgur.com/kgOzh.png)
Если вы также используете expand=True
для Canvas
canvas.pack(fill=BOTH, expand=True)
тогда вы увидите, что он использует полное окно, и вы можете увидеть ничьи ниже 256
![enter image description here](https://i.stack.imgur.com/OPzym.png)
Полный код:
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()