This commit is contained in:
2025-11-24 21:05:22 +08:00
parent e76152945e
commit e4c713035b
12 changed files with 585 additions and 414 deletions

View File

@@ -1,16 +1,31 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
PySide Compatibility Module
自动检测并导入合适的 Qt 绑定PySide2 或 PySide6
支持 Maya 2017-2026+ 所有版本
"""
try:
ModuleNotFoundError
except NameError:
class ModuleNotFoundError(ImportError): # Python2 backward compatilibity
# Python 2 backward compatibility
class ModuleNotFoundError(ImportError):
pass
from maya import cmds
# 尝试导入 PySide6Maya 2025+
try:
if int(cmds.about(majorVersion=True)) >= 2025:
maya_version = int(cmds.about(majorVersion=True))
if maya_version >= 2025:
print(f"DwPicker: Detected Maya {maya_version}, using PySide6")
from PySide6 import QtCore, QtGui, QtWidgets
from PySide6 import __version__
import shiboken6 as shiboken2
# PySide6 兼容性映射
QtWidgets.QShortcut = QtGui.QShortcut
QtWidgets.QAction = QtGui.QAction
@@ -21,7 +36,15 @@ try:
QtCore.Qt.BackgroundColorRole = QtCore.Qt.BackgroundRole
else:
raise TypeError()
except (ModuleNotFoundError, TypeError):
# Maya 2017-2024 使用 PySide2
raise TypeError("Maya version < 2025, will use PySide2")
except (ModuleNotFoundError, TypeError, ImportError) as e:
# 降级到 PySide2Maya 2017-2024
try:
maya_version = int(cmds.about(majorVersion=True))
print(f"DwPicker: Detected Maya {maya_version}, using PySide2")
except:
print("DwPicker: Using PySide2")
from PySide2 import QtCore, QtGui, QtWidgets
import shiboken2