給程序界面加了個菜單,導致菜單和組件的距離過近,非常難看。

於是就想調一下組件和菜單的距離。
看了下文檔,有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)
修改前程序截圖:

修改后程序截圖:

