如何使用网格布局 Python Tkinter 在小部件之间平均划分空间

问题描述

我想在 Tkinter 中使用网格布局在三个按钮之间平均划分空间。并且即使窗口水平调整大小,这些按钮也应该占据相同的空间。

################################
#|  btn1  ||  btn2  ||  btn3  |#
################################

这是我的代码

import tkinter as tk
from tkinter import ttk

win = tk.Tk()
win.grid_columnconfigure(0,weight=1)

btn1 = ttk.Button(win,text='btn1')
btn1.grid(column=0,row=0,columnspan=1,sticky='EW')

btn2 = ttk.Button(win,text='btn2')
btn2.grid(column=1,sticky='EW')

btn3 = ttk.Button(win,text='btn3')
btn3.grid(column=2,sticky='EW')

win.mainloop()

解决方法

这有帮助吗?

import tkinter as tk
from tkinter import Grid,ttk

win = tk.Tk()

btn1 = ttk.Button(win,text='btn1')
btn1.grid(column=0,row=0,columnspan=1,sticky='EW')

btn2 = ttk.Button(win,text='btn2')
btn2.grid(column=1,sticky='EW')

btn3 = ttk.Button(win,text='btn3')
btn3.grid(column=2,sticky='EW')
Grid.columnconfigure(win,weight=1)
Grid.columnconfigure(win,1,2,weight=1)


win.mainloop()

如果需要空间,可以将 padx=5 添加到 btn1.grid()btn3.grid()

,

使用 uniform 参数为所有三列提供统一的宽度。该值可以是任何值,只要对于所有大小相同的列都相同即可。如果您希望它们随着窗口大小的调整而增长,请确保为它们全部赋予非零权重。

win.grid_columnconfigure((0,2),weight=1,uniform="column")

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...