首页  >  文章  >  后端开发  >  权重在 Tkinter 的网格几何中如何发挥作用?

权重在 Tkinter 的网格几何中如何发挥作用?

Barbara Streisand
Barbara Streisand原创
2024-10-24 11:35:02886浏览

How Does Weight Function in Tkinter's Grid Geometry?

权重在 Tkinter 中执行哪些功能?

Tkinter 提供了一个全面的网格几何管理器,用于在窗口内组织小部件。网格的一个关键属性是“权重”选项,它控制当容器中有剩余空间时列和行如何扩展。

默认情况下,每个网格单元格的权重为 0,表示它应该不会增长超过其初始大小。但是,如果有额外空间可用,则为行或列分配非零权重会触发其扩展。

权重实际演示

请考虑以下代码:

import tkinter as tk

root = tk.Tk()
root.geometry("200x100")

f1 = tk.Frame(root, background="bisque", width=10, height=100)
f2 = tk.Frame(root, background="pink", width=10, height=100)

f1.grid(row=0, column=0, sticky="nsew")
f2.grid(row=0, column=1, sticky="nsew")

root.grid_columnconfigure(0, weight=0)
root.grid_columnconfigure(1, weight=0)

root.mainloop()

此代码创建一个带有两个并排放置的框架 f1 和 f2 的窗口。由于没有对列应用权重,所以任何可用空间都不会被使用。

import tkinter as tk

root = tk.Tk()
root.geometry("200x100")

f1 = tk.Frame(root, background="bisque", width=10, height=100)
f2 = tk.Frame(root, background="pink", width=10, height=100)

f1.grid(row=0, column=0, sticky="nsew")
f2.grid(row=0, column=1, sticky="nsew")

root.grid_columnconfigure(0, weight=1)

root.mainloop()

将权重添加到第一列可以确保当窗口放大时,额外的空间将分配给第一列列。

import tkinter as tk

root = tk.Tk()
root.geometry("200x100")

f1 = tk.Frame(root, background="bisque", width=10, height=100)
f2 = tk.Frame(root, background="pink", width=10, height=100)

f1.grid(row=0, column=0, sticky="nsew")
f2.grid(row=0, column=1, sticky="nsew")

root.grid_columnconfigure(0, weight=1)
root.grid_columnconfigure(1, weight=3)

root.mainloop()

为列分配不同的权重可以按比例分配多余空间。在此示例中,第二列的权重是第一列的三倍,从而形成 1:3 的比例。

权重的威力在于其对窗口大小调整的动态响应。当窗口扩展时,小部件会适应可用空间,同时保持其相对比例。这种灵活性对于创建响应灵敏且适应性强的图形用户界面至关重要。

以上是权重在 Tkinter 的网格几何中如何发挥作用?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn