使用 PySide6 的 QFontMetrics 宽度

QFontMetrics Width using 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() 的结果在许多情况下不一致且不可靠,主要是因为它没有考虑字母 轴承.

你应该使用horizontalAdvance() or boundingRect().width().