Tkinter Pack() 设置扩展比例
Tkinter Pack() setting a ratio for expanding
我正在使用 tkinter pack 方法将两个框架放在 window 中。
我需要按 2:1
的比例垂直扩展顶部框架和 Bot 框架
我知道 .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()
即。我试图通过使用以下类似包 ()
来获得相同的结果
#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)
I would like to know in particular whether this can be achieved by using only Pack()
不,没有与 pack
等效的功能。 pack
和 grid
解决了两种不同类型的问题,彼此之间没有 100% 的特征对等性。
我正在使用 tkinter pack 方法将两个框架放在 window 中。 我需要按 2:1
的比例垂直扩展顶部框架和 Bot 框架我知道 .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()
即。我试图通过使用以下类似包 ()
来获得相同的结果#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)
I would like to know in particular whether this can be achieved by using only Pack()
不,没有与 pack
等效的功能。 pack
和 grid
解决了两种不同类型的问题,彼此之间没有 100% 的特征对等性。