Tkinter之使用padding属性调节组件距离

给程序界面加了个菜单,导致菜单和组件的距离过近,非常难看。

 

 于是就想调一下组件和菜单的距离。

看了下文档,有2种调节方式。

一种是调节组件的自身的选项来进行调节,一种是使用padding属性进行调节。

我是要对整行的组件进行调节,单个组件调节不合适,选择使用padding属性进行调节。

 

根据官方文档给出的示例程序,主要是通过使用将组件添加到ttk.Frame,再通过ttk.Frame的padding属性进行调节。

注意:tkinter 的Frame是没有padding属性的!!!一定是得用ttk.Frame。

 

官方例子太复杂了,这里用我自己的例子。

例子的代码如下:

from tkinter.ttk import *

inputFrame=Frame(root,padding=(10,5,10,0))


inputLabel=Label(inputFrame,text = "目标路径:")
inputLabel.grid(row = 0, column = 0)
inputEntry=Entry(inputFrame, textvariable = inputPath)
inputEntry.grid(row = 0, column = 1)
inputButton=Button(inputFrame, text = "路径选择", command = selectInputPath)
inputButton.grid(row = 0, column = 2)

inputFrame.grid(row = 0, column = 0, columnspan=3)

下面对代码进行说明。

首先引入ttk,引入 ttk 后,系统默认都是使用ttk的Frame。

from tkinter.ttk import *

创建一个ttk.Frame组件 inputFrame ,将其放置在主窗口root中,设置padding为 10,5,10,0

inputFrame=Frame(root,padding=(10,5,10,0))

这里说下padding四个参数的意义,四个参数分别代表不同位置的要填充的大小。

分别是左,上,右,下。

padding=(左,上,右,下)

将我要调节的那一行的组件全部放到 inputFrame 里面去。

以 inputLabel 为例

inputLabel=Label(inputFrame,text = "目标路径:")

设置 inputLabel 在 inputFrame 内的布局,这个和我们在主窗口中使用grid布局的方式是一致的。

inputLabel.grid(row = 0, column = 0)

添加完所有要添加的组件到 inputFrame 中后,

最后设置 inputFrame 在主窗口 root 中的布局

inputFrame.grid(row = 0, column = 0, columnspan=3)

修改前程序截图:

 

 

修改后程序截图:

 

 

参考:https://tkdocs.com/tutorial/grid.html#padding

posted @ 2021-04-27 18:40  水汐音  阅读(1312)  评论(0编辑  收藏  举报