Fix for PyQt6

This commit is contained in:
Hugo van Kemenade 2021-10-16 23:04:43 +03:00
parent 2f29c1233a
commit d1148378bc

View File

@ -34,7 +34,7 @@ qt_versions.sort(key=lambda qt_version: qt_version[1] in sys.modules, reverse=Tr
for qt_version, qt_module in qt_versions: for qt_version, qt_module in qt_versions:
try: try:
if qt_module == "PyQt6": if qt_module == "PyQt6":
from PyQt6.QtCore import QBuffer, QIODevice from PyQt6.QtCore import QBuffer, QIODevice, QIODeviceBase
from PyQt6.QtGui import QImage, QPixmap, qRgba from PyQt6.QtGui import QImage, QPixmap, qRgba
elif qt_module == "PySide6": elif qt_module == "PySide6":
from PySide6.QtCore import QBuffer, QIODevice from PySide6.QtCore import QBuffer, QIODevice
@ -66,7 +66,13 @@ def fromqimage(im):
:param im: QImage or PIL ImageQt object :param im: QImage or PIL ImageQt object
""" """
buffer = QBuffer() buffer = QBuffer()
qt_openmode = QIODevice.OpenMode if qt_version == "6" else QIODevice if qt_version == "6":
try:
qt_openmode = QIODeviceBase.OpenModeFlag
except AttributeError:
qt_openmode = QIODevice.OpenMode
else:
qt_openmode = QIODevice
buffer.open(qt_openmode.ReadWrite) buffer.open(qt_openmode.ReadWrite)
# preserve alpha channel with png # preserve alpha channel with png
# otherwise ppm is more friendly with Image.open # otherwise ppm is more friendly with Image.open