69
69
70
70
71
71
def _setup_pyqt5plus ():
72
- global QtCore , QtGui , QtWidgets , __version__ , _isdeleted , _getSaveFileName
72
+ global QtCore , QtGui , QtWidgets , __version__
73
+ global _getSaveFileName , _isdeleted , _to_int
73
74
74
75
if QT_API == QT_API_PYQT6 :
75
76
from PyQt6 import QtCore , QtGui , QtWidgets , sip
@@ -78,10 +79,15 @@ def _setup_pyqt5plus():
78
79
QtCore .Slot = QtCore .pyqtSlot
79
80
QtCore .Property = QtCore .pyqtProperty
80
81
_isdeleted = sip .isdeleted
82
+ _to_int = operator .attrgetter ('value' )
81
83
elif QT_API == QT_API_PYSIDE6 :
82
84
from PySide6 import QtCore , QtGui , QtWidgets , __version__
83
85
import shiboken6
84
86
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
85
91
elif QT_API == QT_API_PYQT5 :
86
92
from PyQt5 import QtCore , QtGui , QtWidgets
87
93
import sip
@@ -90,11 +96,16 @@ def _isdeleted(obj): return not shiboken6.isValid(obj)
90
96
QtCore .Slot = QtCore .pyqtSlot
91
97
QtCore .Property = QtCore .pyqtProperty
92
98
_isdeleted = sip .isdeleted
99
+ _to_int = int
93
100
elif QT_API == QT_API_PYSIDE2 :
94
101
from PySide2 import QtCore , QtGui , QtWidgets , __version__
95
- import shiboken2
102
+ try :
103
+ from PySide2 import shiboken2
104
+ except ImportError :
105
+ import shiboken2
96
106
def _isdeleted (obj ):
97
107
return not shiboken2 .isValid (obj )
108
+ _to_int = int
98
109
else :
99
110
raise AssertionError (f"Unexpected QT_API: { QT_API } " )
100
111
_getSaveFileName = QtWidgets .QFileDialog .getSaveFileName
@@ -141,9 +152,6 @@ def _isdeleted(obj):
141
152
# PyQt6 enum compat helpers.
142
153
143
154
144
- _to_int = operator .attrgetter ("value" ) if QT_API == "PyQt6" else int
145
-
146
-
147
155
@functools .lru_cache (None )
148
156
def _enum (name ):
149
157
# foo.bar.Enum.Entry (PyQt6) <=> foo.bar.Entry (non-PyQt6).
0 commit comments