Python tkinter центрировать frame между двумя другими которые под side=left и side=right
Есть 2 frame'а, один расположен слева, второй справа. Нужно сделать, чтобы 3-ий frame располагался между ними. Фулл код:
import tkinter as tk
import tkinter.ttk as ttk
langs = ["English", "Russian"]
root = tk.Tk()
root.title("Translator")
root.resizable(0, 0)
root.geometry("1000x500")
frame1 = tk.Frame(root)
frame2 = tk.Frame(root)
frame3 = tk.Frame(root)
enter_text = ttk.Label(frame1, text="Enter text:", font="Arial 15", anchor="e")
enter_text.pack()
enter_field = tk.Text(frame1, font="Arial", height=20, width=40)
enter_field.pack()
lang1_text = ttk.Label(frame1, text="Source language:", font="Arial 15")
lang1_text.pack()
lang1_box = ttk.Combobox(frame1, values=langs, state="readonly")
lang1_box.pack()
lang1_box.current(0)
output_text = ttk.Label(frame2, text="Result:", font="Arial 15")
output_text.pack()
output_field = tk.Text(frame2, font="Arial", height=20, width=40, state="disabled")
output_field.pack()
lang2_text = ttk.Label(frame2, text="Output language:", font="Arial 15")
lang2_text.pack()
lang2_box = ttk.Combobox(frame2, values=langs, state="readonly")
lang2_box.pack()
lang2_box.current(0)
trans_btn = ttk.Button(frame3, text="\nTranslate\n", width=30)
trans_btn.pack()
frame1.pack(side="left")
frame3.pack()
frame2.pack(side="right")
root.mainloop()
Ответы (2 шт):
Автор решения: vsi-
→ Ссылка
Попробуйте рассчитать расстояние по x и y между двумя фреймами, куда вы хотите поместить третий, возьмите эту территорию, как отдельное окно, и на листике, путём простой формулы вычислите, зная размер вашего третьего фрейма, на какие координаты его можно поместить, чтобы он был в середине, при помощи метода grid
Автор решения: GrAnd
→ Ссылка
Банально в той строчке где сейчас frame3.pack():
frame3.pack(side="left", fill=tk.X, expand=True)