我已按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()
答案 0 :(得分:2)
据我了解,您想要:
但是您的代码集配置是每次调整大小的一种方式:
使用 grid 的正确解决方案是:
因此将代码的相应部分更改为:
root.grid_columnconfigure(1, weight=1)
root.grid_rowconfigure(1, weight=1)
答案 1 :(得分:1)
您可以使用import tkinter as tk
import tkinter.ttk as ttk
root = tk.Tk()
root.wm_geometry("1200x700")
f1 = tk.Frame(root, bg="black", height=100)
f1.pack(anchor=tk.N, fill=tk.X)
f2 = tk.Frame(root)
f3 = tk.Frame(f2, bg="red", width=100)
f3.pack(anchor=tk.NW, side=tk.LEFT, fill=tk.Y)
f4 = tk.Frame(f2, bg="blue", width=100, height=100)
f4.pack(anchor=tk.NW, side=tk.LEFT, expand=True, fill=tk.BOTH)
f2.pack(anchor=tk.N, side=tk.TOP, expand=True, fill=tk.BOTH)
root.mainloop()
几何管理器来获得所需的可调整大小的窗口几何:
{{1}}