【问题标题】:QFontMetrics Width using PySide6使用 PySide6 的 QFontMetrics 宽度
【发布时间】:2021-05-05 15:06:13
【问题描述】:

我的代码中有以下行:

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.11 起)中,它也已被认为已过时,并且在 Qt6 文档(也没有 C++ 或 Python)中没有它的踪迹。

标签: qt pyqt5 pyside pyside6


【解决方案1】:

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

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

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

【讨论】:

  • 谢谢,看来我已经为 PyQt4 和旧版本的 PySide 提取了旧文档。我使用了horizo​​ntalAdvance(),它可以正常工作。再次感谢!
猜你喜欢
  • 1970-01-01
  • 2021-08-30
  • 1970-01-01
  • 1970-01-01
  • 2021-12-20
  • 2022-06-23
  • 2021-12-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多