首页 文章

在ttk / python中更改Label小部件的填充颜色

提问于
浏览
4

我试图在python中使用ttk / tkinter显示图像 . 图像有一个白色边框,我想在更大的白色背景上显示这个图像 - 所以它周围有很多白色空间 .

为此,我在标签中使用“padx”和“pady”,每个100px . 不幸的是,填充区域是灰色的 .

现在我尝试更改标签的前景色和背景色无济于事 . 填充区域保持灰色 . 然后我将标签放在Frame小部件中,并尝试更改Frame的前景/背景颜色 . 但不幸的是,Frame小部件不会侦听width =和height = arguments . 此外,如果我改变前景色,SUNKEN边框会改变颜色 - 非常酷,但对我来说完全没用:/ .

有人可以帮帮我吗?当前的非工作代码如下所示:

style = Style()

style.configure('Dlr.TFrame', background="blue", relief=SUNKEN)
frm = Frame(self, style="Dlr.TFrame") # does not work: ,height=500,width=500)
frm.grid(row=0, column=0, rowspan=8, columnspan=2, sticky=N+S+E+W)

style.configure("Dlr.TLabel", background="white")
style.configure("Dlr.TLabel.padding", background="white") # just guessed ...
self.IMG = Label(frm, style="Dlr.TLabel")
self.IMG.grid(row=0, column=0, padx=100, pady=100)

1 回答

  • 3

    将图像放入框架然后设置框架颜色的技术是正确的技术 .

    宽度和高度不起作用,因为 gridpack 默认情况下导致包含小部件为"shrink-to-fit" . 这称为几何传播 . 您可以使用包含小部件上的方法grid_propagatepack_propagate打开或关闭此功能 .

    例如,如果您调用 frm.grid_propagate(False) 然后设置小部件和高度 frm ,则将遵循宽度和高度 .

相关问题