【发布时间】:2019-09-21 18:11:23
【问题描述】:
我有一个 Tkinter 类,其中有一个网格,每个网格行的权重应与行配置中所述的权重相同,并且当我关闭传播时,网格的内容不应影响网格尺寸。
只要我在网格中有带有背景颜色的空框架,这就会正常工作,但是一旦我将一个按钮添加到顶部网格行,与其他行相比,该行的大小会增加大约按钮的高度本身。代码如下:
class MainMenuPage(tkinter.Frame):
def __init__(self,parent,controller):
tkinter.Frame.__init__(self,parent)
self.controller=controller
self.columnconfigure(0,weight=1)
self.rowconfigure(0,weight=1)
self.rowconfigure(1,weight=1)
self.rowconfigure(2,weight=1)
self.rowconfigure(3,weight=1)
self.grid_propagate(0);
self.color0=tkinter.Frame(self,bg="#bd1e2b")
self.color0.grid(column=0,row=0,sticky="nesw")
self.color1=tkinter.Frame(self,bg="#1e1ebd")
self.color1.grid(column=0,row=1,sticky="nesw")
self.color2=tkinter.Frame(self,bg="#1ebd48")
self.color2.grid(column=0,row=2,sticky="nesw")
self.color3=tkinter.Frame(self,bg="#bdb81e")
self.color3.grid(column=0,row=3,sticky="nesw")
image=Image.open("/path/settingsIcon.png")
image=image.resize((54,54),Image.ANTIALIAS)
self.settingsIcon=ImageTk.PhotoImage(image)
self.settingsButton=tkinter.Button(self,compound=tkinter.TOP,width=54,height=54,image=self.settingsIcon,command=lambda:self.controller.showPage("valveMain"))
self.settingsButton.grid(column=0,row=0,sticky="ne")
添加按钮时如何防止网格改变大小?
【问题讨论】:
-
您是否想要实施严格的限制,或者您是否愿意提供一种解决方案,在某一行改变高度时调整所有行的高度?换句话说,目标是“不要让行调整大小”还是“所有行都应该是相同的大小”?我不明白您为什么要强制行高小于该行的高度。
-
就是这样,按钮不比行大。但我基本上确实想强制执行严格的尺寸,但我不想以绝对尺寸而是以比率(重量)强制它们
-
我想让网格相对于它们的父级而不是它的内容调整大小
-
weight不用于定义相对大小。它用于定义如何分配额外的空间。 -
那么我如何获得一个表格,其中每一行都分配了相同的高度,并且不受内容的影响
标签: python tkinter raspberry-pi grid tkinter-layout