QML中TextField组件运行时文字仅部分显示问题咨询
问题根因
该显示异常由TextField的控件高度与字体尺寸不匹配导致:
- 代码中为
TextField硬编码了height: 20,但同时设置font.pixelSize: 30,字体本身的像素高度已经远大于控件可显示的高度范围,文字上下部分的笔画会被控件边界裁剪,仅保留中间可见区域的内容。 - 你配置的
verticalAlignment: Text.AlignVCenter会让文字在控件内垂直居中,进一步导致文字上下超出高度的部分被均匀裁剪,刚好匹配你截图中仅显示文字中间半截笔画的表现。
修复方案
可任选以下一种适配方案:
- 移除硬编码的
height: 20属性,让TextField根据字体大小、控件内边距自动计算适配高度,该方案适配性最好,兼容不同字体、高DPI缩放场景 - 如果需要固定
TextField高度,将height值调整到大于等于字体像素大小,例如设置height: 35,预留少量上下边距避免裁剪 - 如果必须保留20的控件高度,将
font.pixelSize下调到16及以下,保证字体整体高度在控件可显示范围内
内容的提问来源于stack exchange,提问作者PyDev19
相关产品推荐
相关产品推荐

