为何Tkinter的ScrolledText组件width与height尺寸表现不一致?
ScrolledText 宽高显示异常的原因解析
核心原因:参数单位不统一
scrolledtext.ScrolledText的width和height参数并非使用相同单位:
width:以平均字符宽度为单位,数值代表组件能容纳的字符数量height:以单行文本高度为单位,数值代表组件能显示的文本行数
默认字体下,单个字符的宽度通常远小于单行文本的高度(比如字符宽约8px,行高约16px)。当你设置width=50、height=50时,实际宽度是50×字符宽,高度是50×行高,视觉上宽度自然只有高度的一半左右。
将width改为100后,100×字符宽的数值刚好接近50×行高(行高约为字符宽的2倍),所以视觉上两者就恢复了匹配。
额外说明
如果需要让组件的宽高在像素层面严格一致,有两种方式:
- 调整
font参数,让字符宽度和行高的比例接近1:1 - 通过几何管理方法(
pack/grid/place)的width/height属性直接指定像素尺寸(注意区分组件自身的width/height参数)
内容的提问来源于stack exchange,提问作者Aadvik
相关产品推荐
相关产品推荐

