Update
This commit is contained in:
@@ -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
|
||||
|
||||
# 尝试导入 PySide6(Maya 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:
|
||||
# 降级到 PySide2(Maya 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
|
||||
Reference in New Issue
Block a user