【问题标题】:Tkinter Label resize when packing a button打包按钮时 Tkinter 标签调整大小
【发布时间】:2020-08-31 14:51:18
【问题描述】:

我正在尝试在窗口左侧放置一个垂直的 tkinter 标签。

    FONT = ('helvetica', 18)
    write = 'hello world'

    label = tk.Label(
        window, anchor = 's', background = BACKGROUNDGREY, borderwidth = 0, font = FONT, foreground = 'white',
        justify = 'center', pady = 40, relief = 'flat', text = write, width = len(write) * 2
    )

    label.pack(side = 'left', fill = 'y')

一切正常,如下所示:

但是现在,当我添加此代码以放置按钮时...

    btn = tk.Button(
        label, activebackground = BACKGROUNDGREY, borderwidth = 0, background = BACKGROUNDGREY, height = 70,
        highlightcolor = 'white', width = 70
    )

    btn.pack()

发生这种情况:

如您所见,我不知道为什么,但标签的文本不再可读,并且它还会调整宽度,我想保留第一张图片中显示的宽度的标签。

更新:我看到我们中的一些人不明白:我想要标签内的按钮。

【问题讨论】:

  • 嗯...您正在尝试将按钮的父级设置为标签?!这是故意的吗?
  • 是的,我希望按钮位于标签内。
  • “我想要标签内的按钮”。你想达到什么目的(因为在标签内放一个按钮对你没有帮助)?如果你想要按钮后面的文本(这可能是我能想到的为什么你会如此坚持在标签中包含按钮的唯一原因),你可以使用带有 create_textcreate_window 的画布。跨度>
  • 这里有点复杂。我只想像许多应用程序一样,在充满按钮的窗口左侧放一个小标签,在右侧放一个主体。由于我希望列具有一定宽度,因此我不能使用网格,因此我认为标签(具有宽度)可以解决我的问题...我也不知道这是否是最佳选择。如果您有任何想法,请告诉我。
  • 在这种情况下,您可能仍然可以使用带网格的框架,但按照 Bryan 在another of his answers 中的建议使用grid_propagate(0)

标签: python tkinter


【解决方案1】:

您已将按钮放在标签内。此外,您要求按钮的高度为 70 个字符pack 将缩小或扩展父级以适应其子级,因此标签正在缩小以完全适应按钮,并且按钮具有更高的堆叠顺序,因此它会遮挡标签的文本。

【讨论】:

  • 好吧,你是对的。但我也尝试了更小的尺寸,并且随着按钮尺寸的增大/减小,标签不断缩小。
  • @Gianla:是的,就像答案所说的那样,标签会缩小,因为您将按钮放在标签内。默认情况下,Tkinter 小部件会缩小或扩展以适合其子级。
猜你喜欢
  • 1970-01-01
  • 2017-11-18
  • 2012-07-23
  • 1970-01-01
  • 1970-01-01
  • 2013-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多