如何解决使用 PySide6
我的代码中有以下行:
self.textLength = self.fontMetrics().width(self.text())
它适用于 PyQt5,但我正在尝试将代码移动到 PySide6,当我这样做时,我收到错误 AttributeError: type object 'PySide6.QtGui.QFontMetrics' has no attribute 'width'
我尝试通读 QFontMetrics 文档,但我所做的一切似乎都出现了相同的错误。关于如何将此行转换为 PySide6 的任何想法?谢谢!
解决方法
QFontMetrics.width()
自 Qt 5.5 起就被认为已过时,并从 Qt 5.11 弃用(但可能仍会在 Qt 5 的任何未来版本中得到支持),并最终在 Qt 6 中删除。
正如文档(已经在 Qt5 的过时成员页面中)报告的那样,width()
的结果在许多情况下不一致且不可靠,主要是因为它没有考虑字母 bearings.
您应该使用 horizontalAdvance()
或 boundingRect()
.width()
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。