PyQt6:AttributeError:类型对象“QImage”没有属性“Format_RGB888”

F.R*_*R.D 3 pyqt python-3.x pyqt5 pyqt6

我试图将代码从 PyQt5 移植到 PyQt6,但出现以下错误:

AttributeError: type object 'QImage' has no attribute 'Format_RGB888'
Run Code Online (Sandbox Code Playgroud)

尽管在 PyQt6 QImage 文档中存在这些格式,但任何 Format_* 都会发生这种情况。

Python 3.9 与 miniforge 一起安装,Mac M1 与 OS X 11.5.2 一起安装

谢谢。

F.R*_*R.D 12

好的,我自己找到了解决方案。

尽管在 PySide6 的文档(https://doc.qt.io/qtforpython/PySide6/QtGui/QImage.html)中,这些常量仍然以 PyQt5 的方式编写,但它们现在存储在 Format 枚举中。从 PyQt5 到 PyQt6 的端口是:

PyQt5:

QImage.Format_RGB888
Run Code Online (Sandbox Code Playgroud)

PyQt6:

QImage.Format.Format_RGB888
Run Code Online (Sandbox Code Playgroud)

这适用于 QImage 的所有 Format_* 常量。