[PyQt6] 使用等宽字体,文本中字符不等宽

font = QFont()
font.setFamily("Fira Code")
font.setPixelSize(16)
fm = QFontMetrics(font)

print(fm.horizontalAdvance("W")) # 11
print(fm.horizontalAdvance("W" * 7)) # 输出 77,符合预期
print(fm.horizontalAdvance("W" * 8)) # 理论上输出 88,但输出 89,不符合预期

请问该如何解决,使文本中字符都是等宽的?

用 QFontMetricsF 替代 QFontMetrics

1 个赞

@manateelazycat 问题解决了,感谢大佬

1 个赞

eaf-pyqterminal 对上图中中英文列的对齐可以搞定吗?

图二是我写的 deepin-terminal (基于 VTE 控件)的效果。

可以,大概明天就能搞定

1 个赞

手动点赞 :+1:

搞定

爽, 现在 eaf-pyqterminal 启动速度比 eaf-terminal 快太多了, 而且兼容性和可扩展性比 vterm 好很多。

以后在Emacs内部就用 eaf-pyqterminal 了。

1 个赞