6969
7070
7171def _setup_pyqt5plus ():
72- global QtCore , QtGui , QtWidgets , __version__ , _isdeleted , _getSaveFileName
72+ global QtCore , QtGui , QtWidgets , __version__
73+ global _getSaveFileName , _isdeleted , _to_int
7374
7475 if QT_API == QT_API_PYQT6 :
7576 from PyQt6 import QtCore , QtGui , QtWidgets , sip
@@ -78,10 +79,15 @@ def _setup_pyqt5plus():
7879 QtCore .Slot = QtCore .pyqtSlot
7980 QtCore .Property = QtCore .pyqtProperty
8081 _isdeleted = sip .isdeleted
82+ _to_int = operator .attrgetter ('value' )
8183 elif QT_API == QT_API_PYSIDE6 :
8284 from PySide6 import QtCore , QtGui , QtWidgets , __version__
8385 import shiboken6
8486 def _isdeleted (obj ): return not shiboken6 .isValid (obj )
87+ if parse_version (__version__ ) >= parse_version ('6.4' ):
88+ _to_int = operator .attrgetter ('value' )
89+ else :
90+ _to_int = int
8591 elif QT_API == QT_API_PYQT5 :
8692 from PyQt5 import QtCore , QtGui , QtWidgets
8793 import sip
@@ -90,11 +96,16 @@ def _isdeleted(obj): return not shiboken6.isValid(obj)
9096 QtCore .Slot = QtCore .pyqtSlot
9197 QtCore .Property = QtCore .pyqtProperty
9298 _isdeleted = sip .isdeleted
99+ _to_int = int
93100 elif QT_API == QT_API_PYSIDE2 :
94101 from PySide2 import QtCore , QtGui , QtWidgets , __version__
95- import shiboken2
102+ try :
103+ from PySide2 import shiboken2
104+ except ImportError :
105+ import shiboken2
96106 def _isdeleted (obj ):
97107 return not shiboken2 .isValid (obj )
108+ _to_int = int
98109 else :
99110 raise AssertionError (f"Unexpected QT_API: { QT_API } " )
100111 _getSaveFileName = QtWidgets .QFileDialog .getSaveFileName
@@ -141,9 +152,6 @@ def _isdeleted(obj):
141152# PyQt6 enum compat helpers.
142153
143154
144- _to_int = operator .attrgetter ("value" ) if QT_API == "PyQt6" else int
145-
146-
147155@functools .lru_cache (None )
148156def _enum (name ):
149157 # foo.bar.Enum.Entry (PyQt6) <=> foo.bar.Entry (non-PyQt6).
0 commit comments