我正在尝试用python显示一个带有ttk/tkinter的图像。图像有一个白色的边框,我想在一个更大的白色背景上显示这个图像--这样它周围就有很多空白。
为此,我在标签中使用了"padx“和"pady”,每个标签都有100px。不幸的是,填充区域是灰色的。
现在,我尝试更改标签的前景和背景颜色,但没有效果。填充区域保持灰色。然后,我将标签放在一个框架小部件中,并尝试更改框架的前景/背景颜色。但不幸的是,Frame小部件不能监听width=和height=参数。另外,如果我改变前景颜色,凹陷的边框会改变颜色-真的很酷,但对我来说完全没有用:/。
有人能帮我这个忙吗?当前无法工作的代码如下所示:
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)发布于 2012-01-19 02:23:54
将图像放入框架内,然后设置框架颜色的技术是正确的技术。
宽度和高度不起作用,因为在默认情况下,grid和pack都会导致包含的小部件“收缩到合适的大小”。这称为几何传播。您可以在包含的小部件上使用grid_propagate或pack_propagate方法打开或关闭此功能。
例如,如果您调用frm.grid_propagate(False),然后设置frm的小部件和高度,则将使用宽度和高度。
https://stackoverflow.com/questions/8910500
复制相似问题