使用 PySide6 的 QFontMetrics 宽度

Ric*_*ein 2 qt pyside pyqt5 pyside6

我的代码中有以下行:

self.textLength = self.fontMetrics().width(self.text())
Run Code Online (Sandbox Code Playgroud)

它适用于 PyQt5,但我试图将代码移至 PySide6,当我这样做时,我收到错误AttributeError: type object 'PySide6.QtGui.QFontMetrics' has no attribute 'width'

我尝试阅读 QFontMetrics 文档,但我所做的一切似乎都会给出相同的错误。关于如何将此行转换为 PySide6 有什么想法吗?谢谢你!

mus*_*nte 11

QFontMetrics.width()自 Qt 5.5 起已被认为已过时,并从 Qt 5.11 起弃用(但在 Qt 5 的任何未来版本中可能仍受支持),并最终在 Qt 6 中删除。

正如文档(已经在 Qt5 的过时成员页面中)报告的那样,结果width()在许多情况下不一致且不可靠,主要是因为它没有考虑字母轴承

您应该使用horizontalAdvance()或。boundingRect().width()