给程序界面加了个菜单,导致菜单和组件的距离过近,非常难看。
于是就想调一下组件和菜单的距离。
看了下文档,有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)
修改前程序截图:
修改后程序截图: