Python/Tkinter:动态扩展字体大小以填充框架

All*_*ack 6 python tk-toolkit tkinter

我知道您可以通过以下命令让框架小部件扩展并填充其容器中可用的所有区域:frameName.pack(fill = 'both', expand = True)

对于文本的字体大小有何作用?目前我的文本是标签小部件的属性。标签小部件的父级是frameName

我想我可以定义自己的函数来调用以随着labelName.config(fontsize = N)框架变大而更新字体大小,但我不确定如何将它们关联起来。

这就是我的程序现在的样子: 每个块都是一个框架小部件。我希望文本能够扩展以填充框架的某些容量,并响应窗口大小的调整。

use*_*843 5

您可以使用 tkFont.font

初始化标签时,将字体设置为变量,例如:

self.font = SOME_BASE_FONT
self.labelName.config(font = self.font)
Run Code Online (Sandbox Code Playgroud)

然后你可以使用:

self.font = tkFont.Font(size = PIXEL_HEIGHT)
Run Code Online (Sandbox Code Playgroud)

您可以缩放到标签的高度。您可以将'<Configure>'事件绑定到小部件,并使回调函数调整标签大小。

frameName.bind('<Configure>', self.resize)

def resize(self, event):
    self.font = tkFont(size = widget_height)
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅此处的文档。