如何修改 QPlainTextEdit 里每个字符的宽度?
等宽字体混入中文的话,在某些字号下就不等宽了,于是想到修改字符宽度。
找了一圈文档都想不出办法,想到修改 paintEvent,但是光标,字符选中之类的操作就不同步了。
难道要从头实现一个 edit ?……
PS:用的 PySide 1.2.4,对应 Qt 4.8.7,Python 3.4.4
先感谢各位回答的大佬 ><
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
找来找去想出个凑合的办法……
用 FontMetrics 取到 QPlainTextEdit 里每个字符的宽度,
如果宽度不标准就给单个字符的 CharFormat 设置适当的 LetterSpacing,
对于新添加的文本用 contentsChange 信号捕捉。
代价:性能……,撤销重做历史貌似废掉了……
注意:setFontLetterSpacing 有精度损失,详细自己去看 Qt 源码……