为了账号安全,请及时绑定邮箱和手机立即绑定

防止 Tkinter 网格动态调整单元格大小

防止 Tkinter 网格动态调整单元格大小

Cats萌萌 2022-06-02 16:01:16
我有一个 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")添加按钮时如何防止网格改变大小?
查看完整描述

1 回答

?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

我并不完全不明白你想要完成什么。如果目标是确保每行和/或列的大小相同,则可以将行和列配置为统一组的一部分。weight单独不会这样做,因为它只配置额外空间的分配方式,它不控制行或列的绝对大小。


要创建统一组,请使用和uniform选项。同一统一组中的所有行或列将具有与其权重成比例的相同大小。如果它们的重量相同,它们的大小将相同。row_configurecolumn_configure


从规范的 tcl/tk 文档:


-uniform 选项在提供非空值时,将该行与具有相同 -uniform 值的其他行放在一个统一组中。为属于统一组的行分配空间,以便它们的大小始终与其 -weight 值严格成比例。


在你的情况下,你可以尝试这样的事情:


self.rowconfigure(0,weight=1, uniform='row')

self.rowconfigure(1,weight=1, uniform='row')

self.rowconfigure(2,weight=1, uniform='row')

self.rowconfigure(3,weight=1, uniform='row')

有关更多信息,请参阅tcl/tk 文档中的网格算法。它准确地描述了网格算法的工作原理。


查看完整回答
反对 回复 2022-06-02
  • 1 回答
  • 0 关注
  • 172 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号