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

Tcl Tk文本小部件-获取行和字符的新大小,tcl,tk,Tcl,Tk,创建Tk文本小部件时,可以指定其大小为-height和-width,以默认字体的行和字符表示 如果小部件后来被调整大小,我想以行和字符的形式读取新的大小,但我不知道如何读取。我根本不改变字体。绑定到事件将以%h和%w为单位报告新大小(以像素为单位)。执行cget-height或cget-width仅报告最初配置的行和字符大小。有没有办法检测以行和字符为单位的新大小?您可以以像素为单位计算宽度并进行估计: set width [expr {round($pwidth/[font measure T

创建Tk文本小部件时,可以指定其大小为
-height
-width
,以默认字体的行和字符表示


如果小部件后来被调整大小,我想以行和字符的形式读取新的大小,但我不知道如何读取。我根本不改变字体。绑定到
事件将以%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

您可以采用像素宽度并进行估算:

set width [expr {round($pwidth/[font measure TkTextFont 0])}]
高度应该是:

set height [expr {round($pheight/[font metrics TkTextFont -linespace])}]
用实际使用的字体替换
TkTextFont