tkinter 列配置和行配置

kar*_*rim 2 python tkinter

我想了解 tkinter 中网格布局的一些内容。假设如果有额外空间,我希望第 1 行中的第 1 列展开,但第 2 行中的第 1 列不展开,我该怎么办?

widget.columnconfigure
Run Code Online (Sandbox Code Playgroud)

让您可以控制所有列,但无法指定行。

Bry*_*ley 7

你无法精确地做你想做的事。但是,通过让第 1 行中的小部件跨越两列,而第 2 行中的小部件仅跨越一列,可以获得相同的视觉效果。然后,您可以为第二列赋予权重,这将影响第一行的小部件,但不会影响第二行的小部件。

这是一个简单的例子:

import tkinter as tk

root = tk.Tk()

l1 = tk.Frame(root, background="red", width=100, height=50)
l2 = tk.Frame(root, background="orange", width=100, height=50)
l3 = tk.Frame(root, background="green", width=100, height=50)
l4 = tk.Frame(root, background="blue", width=100, height=50)

root.columnconfigure(2, weight=1)
l1.grid(row=1, column=1, columnspan=2, sticky="ew")
l2.grid(row=1, column=3, sticky="ew")
l3.grid(row=2, column=1, sticky="ew")
l4.grid(row=2, column=3, sticky="ew")

root.mainloop()
Run Code Online (Sandbox Code Playgroud)

当此代码首次启动时,看起来像这样,其中两列的大小相同。

在此输入图像描述

调整窗口大小时,您可以看到第 1 行的小部件展开,但第 2 行的小部件没有展开。

在此输入图像描述