在ttk / python中更改Label小部件的填充颜色
作者:互联网
我试图在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)
解决方法:
将图像放入框架然后设置框架颜色的技术是正确的技术.
宽度和高度不起作用,因为网格和包都会导致包含窗口小部件默认为“缩小到适合”.这称为几何传播.您可以使用包含小部件上的方法grid_propagate或pack_propagate打开或关闭此功能.
例如,如果调用frm.grid_propagate(False)然后设置frm的小部件和高度,则将遵循宽度和高度.
标签:python,tkinter,ttk,styling 来源: https://codeday.me/bug/20190630/1335527.html