Tkinter Pack () устанавливает коэффициент для расширения - PullRequest
0 голосов
/ 18 апреля 2020

Я использую метод tkinter pack, чтобы поместить два кадра в окно. Мне нужно расширить верхнюю рамку и рамку бота по вертикали в соотношении 2: 1

Я понимаю, что .expand() в диспетчере сетки имеет параметр под названием rowconfigure () для этой цели. Тем не менее, я хотел бы знать, в частности, можно ли это сделать, используя только Pack ()

import tkinter as tk
from tkinter import ttk

window = tk.Tk()
window.title("Pack expand ratio - tkinter pack vs grid")
window.geometry("800x600")
window.minsize(200, 200)   

frm_Top = tk.Frame(master=window, width = 600,bg= '#beb7e2', relief=tk.GROOVE, borderwidth=2)
frm_Top.pack(side =tk.TOP, fill=tk.BOTH, expand=True ) 
frm_Bot = tk.Frame(master=window, width = 600, bg= '#abbdee',relief=tk.GROOVE, borderwidth=2)
frm_Bot.pack(side =tk.TOP, fill=tk.BOTH, expand=True)

btn_search = ttk.Button(master=frm_Top, text="Search",width=15)
btn_quit = ttk.Button(master=frm_Bot, text="Quit", width = 15)
btn_search.pack(side =tk.TOP, ipady=20, expand=True, anchor='ne')
btn_quit.pack(side =tk.TOP, ipady=20 ,expand=False, anchor='ne')

window.mainloop()

Ie. Я пытаюсь получить те же результаты, используя следующий аналогичный пакет ()

#Frm_Top & Frm_Bot vertically in a ratio of 2:1
#ie equivalent method for using grid weights
window.rowconfigure(0, weight=2)
window.rowconfigure(1, weight=1)

1 Ответ

0 голосов
/ 19 апреля 2020

Я хотел бы знать, в частности, можно ли это сделать, используя только Pack ()

Нет, эквивалентная функция с pack отсутствует. pack и grid решают два разных типа проблем и не имеют 100% паритета возможностей друг с другом.

...