Tk 文本小部件 - 获得新的行和字符大小

Tk Text widget - get new size in lines and chars

当您创建 Tk 文本小部件时,您可以将其大小指定为 -height-width,以默认字体的行数和字符数来衡量。

如果稍后调整小部件的大小,我想以行和字符的形式读取新的大小,但我不知道如何读取。我根本没有改变字体。绑定到 <Configure> 事件将在 %h 和 %w 中报告以像素为单位的新大小。执行 cget -heightcget -width 只会报告最初配置的行和字符大小。有没有办法检测行和字符的新大小?

您可以采用以像素为单位的宽度并进行估算:

set width [expr {round($pwidth/[font measure TkTextFont 0])}]

身高应该是这样的:

set height [expr {round($pheight/[font metrics TkTextFont -linespace])}]

用实际使用的字体替换 TkTextFont