【发布时间】:2020-11-02 07:43:15
【问题描述】:
我在调整 tkinter 中的列和行框架大小时遇到问题。
我以 1:4 的比例划分了列和行。在调整窗口大小时,它会保持比例,但我想避免调整黑色和红色框架的大小。所以基本上,当我调整大小时,黑色和红色框架不应该增长或收缩,但所有变化都发生在白色窗口中。我怎样才能做到这一点?
代码-
import tkinter as tk
import tkinter.ttk as ttk
root = tk.Tk()
root.wm_geometry("1200x700")
root.grid_columnconfigure(0, weight=1)
root.grid_columnconfigure(1, weight=4)
root.grid_rowconfigure(0, weight=1)
root.grid_rowconfigure(1, weight=4)
f1 = tk.Frame(root, background="black", height=100, width=100)
f2 = tk.Frame(root, background="black", height=100, width=100)
f3 = tk.Frame(root, background="red", height=100, width=100)
f4 = tk.Frame(root, background="white", height=100, width=100)
f1.grid(row=0, column=0, sticky="nsew")
f2.grid(row=0, column=1, sticky="nsew")
f3.grid(row=1, column=0, sticky="nsew")
f4.grid(row=1, column=1, sticky="nsew")
root.mainloop()
【问题讨论】:
-
只需指定黑框的高度和红框的宽度,然后将第1列和第1行的权重设置为1。
-
这不起作用,由于 1:1 的比例,所有帧的大小都相同
-
您是否为仅 column=1 和 row=1 设置 weight=1(即仅扩展白框)?
-
您需要致电
f3.grid_propagate(0)。 -
只需删除第 0 列和第 0 行的
grid_columnconfigure和grid_rowconfigure,这样它们将保持大小不变,只有第 1 行和第 1 列会调整大小
标签: python tkinter tkinter-layout