Не получается расположить цветные полосы(прямоугольники) в Tkinter
Всем доброго времени суток! Я пишу программу выводящую на экран цветные полосы, за основу выбран метод Canvas create_rectangle. Первые две полосы я расположил успешно, но при попытке после второй полосы расположить третью я терплю неудачу т.к третья полоса полностью вторую закрывает и почему-то по размерам не сходится. Я ломал голову, пробовал разные размеры присваивать прямоугольнику, но итог все тот же. Как мне решить эту задачу?
import tkinter as tk
def toggle_fs(dummy=None):
state = False if root.attributes('-fullscreen') else True
root.attributes('-fullscreen', state)
if not state:
root.geometry('300x300+100+100')
root = tk.Tk()
c = tk.Canvas(root)
c.pack(expand=True, fill=tk.BOTH)
rectangle1 = c.create_rectangle(250, 1080, 0, 0, fill='white')
rectangle2 = c.create_rectangle(250, 1080, 550, 0, fill='yellow')
rectangle3 = c.create_rectangle(250, 1080, 750, 0, fill='green')
root.attributes('-fullscreen', True)
root.bind('<Escape>', toggle_fs)
root.mainloop()
Окно с двумя полосами
Окно с тремя полосами
Такое окно хочу получить

Ответы (2 шт):
Можно и без использования канваса. Просто накидать в окно фреймов разных цветов. А дальше они сами равномерно заполнят всё пространство.
import tkinter as tk
def toggle_fs(dummy=None):
state = False if root.attributes('-fullscreen') else True
root.attributes('-fullscreen', state)
if not state:
root.geometry('300x300+100+100')
root = tk.Tk()
for color in """
#000000
#0000C0
#C00000
#C000C0
#00C000
#00C0C0
#C0C000
#FFFFFF
""".split():
tk.Frame(bg=color).pack(side=tk.RIGHT, fill=tk.BOTH, expand=True)
root.attributes('-fullscreen', True)
root.bind('<Escape>', toggle_fs)
root.mainloop()
Чтобы первая полоса не закрывала другую переместите её правее:
rectangle3 = c.create_rectangle(550, 1080, 750, 0, fill='green')

