Нужно расположить рядом 2 виджета Canvas, однако их нужно расположить в соотношение 3:1, и эта пропорция сохранялась с изменением размера окна. В общем, должно выглядеть так:
Изначально написала такой код:
from tkinter import *
root=Tk()
root.geometry("{}x{}".format(root.winfo_screenwidth(), root.winfo_screenheight()
) )
Canvas(root, bg = "red").place(relx=0,
relwidth=0.75, relheight=1)
Canvas(root, bg = "green").place(relx=75,
relwidth=0.25, relheight=1)
root.mainloop()
Но корректно выводилась только красная часть. Зелёной не было вообще:
Погуглила, нашла решение, но для кнопок: clck.ru/MKdKS
Сделала по аналогии, оба примера, но в каждом получилось совершенно не то.
1. Через pack() и frame()
from tkinter import *
root=Tk()
root.geometry("{}x{}".format(root.winfo_screenwidth(), root.winfo_screenheight()
) )
top=Frame(root)
top.pack(side=TOP)
Canvas1=Canvas(root, bg="red")
Canvas1.place(relx=0,
relwidth=0.75, relheight=1,
in_=top)
Canvas2=Canvas(root, bg = "green")
Canvas2.place(relx=75,
relwidth=0.25, relheight=1,
in_=top)
root.mainloop()
По результату то же самое:
Скорее всего ошибка в том, что использую одновременно и pack(), и place(). Однако place() нужен для пропорции, от него отказаться не могу. (Или могу, но просто не знаю этого. :D )
2. Через grid()
from tkinter import *
root=Tk()
root.geometry("{}x{}".format(root.winfo_screenwidth(), root.winfo_screenheight()
) )
canvas1=Canvas(root, bg = "red")
canvas2=Canvas(root, bg = "green")
canvas1.grid(in_=root, row=0, column=0, columnspan=3, sticky="s")
canvas2.grid(in_=root, row=0, column=3, sticky="s")
root.mainloop()
Что получилось:
Но в этом случае всё вообще не так: мало того, что соотношения нет, так ещё к тому же и области не "растянулись" вниз.
Что делать и как исправить, желательно, изначальный вариант?
(Потом мне нужно будет выбирать и загружать видео в красную область, поэтому какую библиотеку лучше изучить для этой цели? OpenCV для работы с самим видео — само собой разумеется, а вот для GUI? =) На первый курсах учила Qt, но мало что получалось сделать, чтобы оно работало вменяемо и без костылей. Если всё одно лучше его использовать, то что почитать/посмотреть, чтобы наконец разобраться? )