Tkinter - 如何扩展标签小部件?

Tkinter - How can I extend a label widget?

图片下方。默认情况下,标签小部件的每一侧都有 3 个空白像素用于填充。我的问题是,我怎样才能将这个填充扩展到合适的大小?

在我的真实代码中,标签内容可以改变,所以这个填充,例如 5 像素,对于每种标签必须是相同的。

这是一个示例程序:

from tkinter import *
from tkinter import ttk

root = Tk()
root.geometry("400x300")

Frame1=Frame(root, background="#ffffff")
Frame1.place(x=16, y=16, width=200, height=150)

Canvas(Frame1, height=1, background="#a0a0a0", highlightthickness=0, highlightbackground="white").grid(row=0, column=0, columnspan=1, sticky="ew")

TestLabel=ttk.Label(Frame1, text="Ciaoooo", background="green", justify="left")
TestLabel.grid(row=0,column=0, sticky="w", padx=(20,20)) # the padding is trasparent! I want it with the same color of the label (green).

root.mainloop()

仅向 ttk 标签的一侧添加填充的正确方法是创建从默认样式派生的新样式。在新样式中,padding 选项采用最多包含左、上、右和下边缘四个值的列表。为右侧赋予 5 的值将为您提供所需的外观。

例如,要创建和使用名为“rpad.TLabel”的新样式,并且仅在右侧填充 5 个像素,它看起来像这样:

style = ttk.Style()
style.configure("rpad.TLabel", padding=(0,0,5,0))
...
TestLabel=ttk.Label(Frame1, style="rpad.TLabel", ...)

站点 tkdocs.com 有一些关于样式引擎如何工作的文档。