【问题标题】:Tkinter - Prevent children from changing parent widthTkinter - 防止孩子改变父母的宽度
【发布时间】:2016-11-20 12:05:01
【问题描述】:

默认情况下,Tkinter 小部件将根据其孩子的大小调整大小(即,Tkinter 不会尊重我的 widthheight 配置)。我知道使用parent.pack_propagate(False) 会阻止parent 的孩子修改它的尺寸,但是如果我只想阻止孩子改变一个尺寸,允许它修改另一个尺寸怎么办?例如,如何防止小部件的子级修改其宽度但允许其更改其高度?

我想出的一个 hack-ish 解决方案是有一个 1px 高的框架,具有我要求的宽度并将其添加到父级,这可以防止其他子级缩小父级的宽度,但这似乎是一个不雅的解决方案.有没有内置的解决方案?

【问题讨论】:

  • 您可以控制哪些小部件进入框架,为什么不确保小部件的宽度相同?
  • 我想在我的小部件和窗口边缘之间有一些填充。例如,将按钮的宽度设置为与窗口相同的宽度看起来不太好,因为没有填充。
  • 所以,制作宽度为 1 的按钮,然后使用网格或打包选项让它们自动展开,并包含一些填充。
  • 如果我设置填充,然后在程序运行时减小窗口宽度,按钮就会消失在自己的填充后面。

标签: python tkinter resize


【解决方案1】:

不,没有办法将几何传播限制在一个方向上。

根据我的经验,解决布局问题的方法几乎总是比关闭传播更好。没有单一的最佳解决方案,这完全取决于您的特定布局需求。

【讨论】:

  • 我提出的解决方案(问题的第二段)是可接受的解决方案还是有更好的方法来实现这一点?
  • @Kootling:不可能说。这取决于你真正的问题是什么。
猜你喜欢
  • 2016-01-09
  • 2019-12-27
  • 2017-10-26
  • 1970-01-01
  • 2019-09-16
  • 1970-01-01
  • 1970-01-01
  • 2012-08-24
  • 2011-11-10
相关资源
最近更新 更多