Tk 文本小部件 - 获得新的行和字符大小
Tk Text widget - get new size in lines and chars
当您创建 Tk 文本小部件时,您可以将其大小指定为 -height
和 -width
,以默认字体的行数和字符数来衡量。
如果稍后调整小部件的大小,我想以行和字符的形式读取新的大小,但我不知道如何读取。我根本没有改变字体。绑定到 <Configure>
事件将在 %h 和 %w 中报告以像素为单位的新大小。执行 cget -height
或 cget -width
只会报告最初配置的行和字符大小。有没有办法检测行和字符的新大小?
您可以采用以像素为单位的宽度并进行估算:
set width [expr {round($pwidth/[font measure TkTextFont 0])}]
身高应该是这样的:
set height [expr {round($pheight/[font metrics TkTextFont -linespace])}]
用实际使用的字体替换 TkTextFont
。
当您创建 Tk 文本小部件时,您可以将其大小指定为 -height
和 -width
,以默认字体的行数和字符数来衡量。
如果稍后调整小部件的大小,我想以行和字符的形式读取新的大小,但我不知道如何读取。我根本没有改变字体。绑定到 <Configure>
事件将在 %h 和 %w 中报告以像素为单位的新大小。执行 cget -height
或 cget -width
只会报告最初配置的行和字符大小。有没有办法检测行和字符的新大小?
您可以采用以像素为单位的宽度并进行估算:
set width [expr {round($pwidth/[font measure TkTextFont 0])}]
身高应该是这样的:
set height [expr {round($pheight/[font metrics TkTextFont -linespace])}]
用实际使用的字体替换 TkTextFont
。