From b6b063e68cb13204051b2a8dfd957391f092eaab Mon Sep 17 00:00:00 2001 From: Jeffreytsai1004 Date: Tue, 11 Feb 2025 00:04:32 +0800 Subject: [PATCH] update --- Install.py | 23 +++++------------------ scripts/MetaFusion.py | 14 ++++++++++---- scripts/__init__.py | 29 ++++------------------------- scripts/config.py | 30 ++++++++++++++++++++++++++++++ scripts/ui/behaviour.py | 22 ++++------------------ scripts/ui/definition.py | 24 +++++------------------- scripts/ui/menu.py | 24 +++++------------------- scripts/ui/meshes.py | 24 +++++------------------- scripts/ui/rigging.py | 22 ++++------------------ scripts/ui/toolshelf.py | 8 ++++++-- scripts/ui/widgets.py | 8 +++++++- 11 files changed, 85 insertions(+), 143 deletions(-) diff --git a/Install.py b/Install.py index fa0cd1b..a44254f 100644 --- a/Install.py +++ b/Install.py @@ -11,24 +11,11 @@ import os from scripts import config -try: - from PySide2 import QtCore, QtGui, QtWidgets - from shiboken2 import wrapInstance - print("从PySide2加载Qt和shiboken2") -except ImportError: - try: - from PySide6 import QtCore, QtGui, QtWidgets - from shiboken6 import wrapInstance - print("从PySide6加载Qt和shiboken6") - except ImportError: - try: - from PySide import QtCore, QtGui, QtWidgets - from shiboken import wrapInstance - print("从PySide加载Qt和shiboken") - except ImportError as e: - print(f"Qt加载失败: {str(e)}") - QtCore = QtGui = QtWidgets = None - wrapInstance = None +QtCore, QtGui, QtWidgets, wrapInstance = config.Qt() + +if QtCore is None or QtGui is None or QtWidgets is None or wrapInstance is None: + + print(f"Qt加载失败: {QtCore}, {QtGui}, {QtWidgets}, {wrapInstance}") TOOL_NAME = config.TOOL_NAME TOOL_ICON = config.TOOL_ICON diff --git a/scripts/MetaFusion.py b/scripts/MetaFusion.py index 2161a39..02077c6 100644 --- a/scripts/MetaFusion.py +++ b/scripts/MetaFusion.py @@ -1,12 +1,18 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -from PySide2 import QtCore, QtGui, QtWidgets import maya.OpenMayaUI as omui -from shiboken2 import wrapInstance from scripts import config from scripts.ui import menu, toolshelf, meshes, rigging, behaviour, definition +from scripts.ui import behaviour, definition, rigging # 改为绝对导入 +from scripts import config # 改为绝对导入 + +QtCore, QtGui, QtWidgets, wrapInstance = config.Qt() + +if QtCore is None or QtGui is None or QtWidgets is None or wrapInstance is None: + print(f"Qt加载失败: {QtCore}, {QtGui}, {QtWidgets}, {wrapInstance}") + class MetaFusion(QtWidgets.QMainWindow): def __init__(self, parent=None): super(MetaFusion, self).__init__(parent) @@ -19,8 +25,8 @@ class MetaFusion(QtWidgets.QMainWindow): # === 设置窗口属性 === self.setWindowTitle(f"{config.TOOL_NAME} {config.TOOL_VERSION}") # 设置初始大小和最小大小 - self.resize(550, 800) # 初始大小 - self.setMinimumSize(550, 800) # 最小大小限制 + self.resize(550, 820) # 初始大小 + self.setMinimumSize(550, 820) # 最小大小限制 # === 创建中心部件 === self.central_widget = QtWidgets.QWidget() diff --git a/scripts/__init__.py b/scripts/__init__.py index 52b35f8..9bffdb6 100644 --- a/scripts/__init__.py +++ b/scripts/__init__.py @@ -7,37 +7,16 @@ from . import config # 确保PYDNA_PATH在sys.path中 if config.PYDNA_PATH not in sys.path: - sys.path.insert(0, config.PYDNA_PATH) # 将PYDNA_PATH添加到搜索路径的最前面 + sys.path.insert(0, config.PYDNA_PATH) # 先导入dna模块 try: import dna except ImportError as e: - # 更详细的错误信息 - print("="*80) - print("DNA模块导入失败:") - print(f"错误信息: {str(e)}") - print(f"PYDNA_PATH: {config.PYDNA_PATH}") - print(f"当前Python路径:") - for p in sys.path: - print(f" - {p}") - print("="*80) - - # 检查pydna目录是否存在及其内容 - if os.path.exists(config.PYDNA_PATH): - print(f"\nPYDNA目录内容:") - for root, dirs, files in os.walk(config.PYDNA_PATH): - print(f"\n目录: {root}") - for d in dirs: - print(f" 目录: {d}") - for f in files: - print(f" 文件: {f}") - else: - print(f"\nPYDNA目录不存在: {config.PYDNA_PATH}") - + print(f"DNA模块导入失败: {str(e)}") raise -# 现在导入其他模块 +# 修改为绝对导入 from .api import build_meshes, build_rig from .builder.config import Config, RigConfig from .builder.maya.skin_weights import ( @@ -46,7 +25,7 @@ from .builder.maya.skin_weights import ( ) from .dnalib.dnalib import DNA from .dnalib.layer import Layer -from .MetaFusion import show +from .MetaFusion import show # 改为绝对导入 from .config import __version__ __all__ = [ diff --git a/scripts/config.py b/scripts/config.py index d7935b4..5628b50 100644 --- a/scripts/config.py +++ b/scripts/config.py @@ -10,11 +10,41 @@ import datetime import sys import os +def Qt(): + try: + from PySide2 import QtCore, QtGui, QtWidgets + from shiboken2 import wrapInstance + print("从PySide2加载Qt和shiboken2") + return QtCore, QtGui, QtWidgets, wrapInstance + except ImportError: + try: + from PySide6 import QtCore, QtGui, QtWidgets + from shiboken6 import wrapInstance + print("从PySide6加载Qt和shiboken6") + return QtCore, QtGui, QtWidgets, wrapInstance + except ImportError: + try: + from PySide import QtCore, QtGui, QtWidgets + from shiboken import wrapInstance + print("从PySide加载Qt和shiboken") + return QtCore, QtGui, QtWidgets, wrapInstance + except ImportError as e: + print(f"Qt加载失败: {str(e)}") + QtCore = QtGui = QtWidgets = None + wrapInstance = None + +QtCore, QtGui, QtWidgets, wrapInstance = Qt() + +if QtCore is None or QtGui is None or QtWidgets is None or wrapInstance is None: + print(f"Qt加载失败: {QtCore}, {QtGui}, {QtWidgets}, {wrapInstance}") + __version__ = "2.1.1" # Base Information TOOL_NAME = str("MetaFusion") TOOL_VERSION = str("Beta v1.0.0") + + TOOL_AUTHOR = str("CGNICO") TOOL_LANG = str('en_US') TOOL_WSCL_NAME = str(f"{TOOL_NAME}WorkSpaceControl") diff --git a/scripts/ui/behaviour.py b/scripts/ui/behaviour.py index 6bb8a9e..1afa7e3 100644 --- a/scripts/ui/behaviour.py +++ b/scripts/ui/behaviour.py @@ -12,24 +12,10 @@ import os from scripts import config -try: - from PySide2 import QtCore, QtGui, QtWidgets - from shiboken2 import wrapInstance - print("从PySide2加载Qt和shiboken2") -except ImportError: - try: - from PySide6 import QtCore, QtGui, QtWidgets - from shiboken6 import wrapInstance - print("从PySide6加载Qt和shiboken6") - except ImportError: - try: - from PySide import QtCore, QtGui, QtWidgets - from shiboken import wrapInstance - print("从PySide加载Qt和shiboken") - except ImportError as e: - print(f"Qt加载失败: {str(e)}") - QtCore = QtGui = QtWidgets = None - wrapInstance = None +QtCore, QtGui, QtWidgets, wrapInstance = config.Qt() + +if QtCore is None or QtGui is None or QtWidgets is None or wrapInstance is None: + print(f"Qt加载失败: {QtCore}, {QtGui}, {QtWidgets}, {wrapInstance}") class BehaviourTab(QtWidgets.QWidget): def __init__(self, parent=None): diff --git a/scripts/ui/definition.py b/scripts/ui/definition.py index 02638d2..eea690d 100644 --- a/scripts/ui/definition.py +++ b/scripts/ui/definition.py @@ -10,26 +10,12 @@ import webbrowser import sys import os -from scripts import config +from scripts import config # 改为绝对导入 -try: - from PySide2 import QtCore, QtGui, QtWidgets - from shiboken2 import wrapInstance - print("从PySide2加载Qt和shiboken2") -except ImportError: - try: - from PySide6 import QtCore, QtGui, QtWidgets - from shiboken6 import wrapInstance - print("从PySide6加载Qt和shiboken6") - except ImportError: - try: - from PySide import QtCore, QtGui, QtWidgets - from shiboken import wrapInstance - print("从PySide加载Qt和shiboken") - except ImportError as e: - print(f"Qt加载失败: {str(e)}") - QtCore = QtGui = QtWidgets = None - wrapInstance = None +QtCore, QtGui, QtWidgets, wrapInstance = config.Qt() + +if QtCore is None or QtGui is None or QtWidgets is None or wrapInstance is None: + print(f"Qt加载失败: {QtCore}, {QtGui}, {QtWidgets}, {wrapInstance}") class DefinitionTab(QtWidgets.QWidget): def __init__(self, parent=None): diff --git a/scripts/ui/menu.py b/scripts/ui/menu.py index b4c619f..91e54b4 100644 --- a/scripts/ui/menu.py +++ b/scripts/ui/menu.py @@ -10,26 +10,12 @@ import webbrowser import sys import os -from scripts import config +from .. import config -try: - from PySide2 import QtCore, QtGui, QtWidgets - from shiboken2 import wrapInstance - print("从PySide2加载Qt和shiboken2") -except ImportError: - try: - from PySide6 import QtCore, QtGui, QtWidgets - from shiboken6 import wrapInstance - print("从PySide6加载Qt和shiboken6") - except ImportError: - try: - from PySide import QtCore, QtGui, QtWidgets - from shiboken import wrapInstance - print("从PySide加载Qt和shiboken") - except ImportError as e: - print(f"Qt加载失败: {str(e)}") - QtCore = QtGui = QtWidgets = None - wrapInstance = None +QtCore, QtGui, QtWidgets, wrapInstance = config.Qt() + +if QtCore is None or QtGui is None or QtWidgets is None or wrapInstance is None: + print(f"Qt加载失败: {QtCore}, {QtGui}, {QtWidgets}, {wrapInstance}") class MenuBar(QtWidgets.QMenuBar): def __init__(self, parent=None): diff --git a/scripts/ui/meshes.py b/scripts/ui/meshes.py index f106ace..e346814 100644 --- a/scripts/ui/meshes.py +++ b/scripts/ui/meshes.py @@ -10,26 +10,12 @@ import webbrowser import sys import os -from scripts import config +from .. import config -try: - from PySide2 import QtCore, QtGui, QtWidgets - from shiboken2 import wrapInstance - print("从PySide2加载Qt和shiboken2") -except ImportError: - try: - from PySide6 import QtCore, QtGui, QtWidgets - from shiboken6 import wrapInstance - print("从PySide6加载Qt和shiboken6") - except ImportError: - try: - from PySide import QtCore, QtGui, QtWidgets - from shiboken import wrapInstance - print("从PySide加载Qt和shiboken") - except ImportError as e: - print(f"Qt加载失败: {str(e)}") - QtCore = QtGui = QtWidgets = None - wrapInstance = None +QtCore, QtGui, QtWidgets, wrapInstance = config.Qt() + +if QtCore is None or QtGui is None or QtWidgets is None or wrapInstance is None: + print(f"Qt加载失败: {QtCore}, {QtGui}, {QtWidgets}, {wrapInstance}") class MeshItem(QtWidgets.QWidget): """单个网格项控件""" diff --git a/scripts/ui/rigging.py b/scripts/ui/rigging.py index 4e113f9..f50d0a1 100644 --- a/scripts/ui/rigging.py +++ b/scripts/ui/rigging.py @@ -12,24 +12,10 @@ import os from scripts import config -try: - from PySide2 import QtCore, QtGui, QtWidgets - from shiboken2 import wrapInstance - print("从PySide2加载Qt和shiboken2") -except ImportError: - try: - from PySide6 import QtCore, QtGui, QtWidgets - from shiboken6 import wrapInstance - print("从PySide6加载Qt和shiboken6") - except ImportError: - try: - from PySide import QtCore, QtGui, QtWidgets - from shiboken import wrapInstance - print("从PySide加载Qt和shiboken") - except ImportError as e: - print(f"Qt加载失败: {str(e)}") - QtCore = QtGui = QtWidgets = None - wrapInstance = None +QtCore, QtGui, QtWidgets, wrapInstance = config.Qt() + +if QtCore is None or QtGui is None or QtWidgets is None or wrapInstance is None: + print(f"Qt加载失败: {QtCore}, {QtGui}, {QtWidgets}, {wrapInstance}") class RiggingTab(QtWidgets.QWidget): def __init__(self, parent=None): diff --git a/scripts/ui/toolshelf.py b/scripts/ui/toolshelf.py index f73e417..c4fd0fc 100644 --- a/scripts/ui/toolshelf.py +++ b/scripts/ui/toolshelf.py @@ -1,8 +1,12 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -from PySide2 import QtCore, QtGui, QtWidgets -from scripts import config +from .. import config + +QtCore, QtGui, QtWidgets, wrapInstance = config.Qt() + +if QtCore is None or QtGui is None or QtWidgets is None or wrapInstance is None: + print(f"Qt加载失败: {QtCore}, {QtGui}, {QtWidgets}, {wrapInstance}") class ToolShelf(QtWidgets.QWidget): def __init__(self, parent=None): diff --git a/scripts/ui/widgets.py b/scripts/ui/widgets.py index 3eabb7a..28c20f9 100644 --- a/scripts/ui/widgets.py +++ b/scripts/ui/widgets.py @@ -9,7 +9,13 @@ import maya.mel as mel import webbrowser import sys import os -from PySide2 import QtCore, QtGui, QtWidgets + +from .. import config + +QtCore, QtGui, QtWidgets, wrapInstance = config.Qt() + +if QtCore is None or QtGui is None or QtWidgets is None or wrapInstance is None: + print(f"Qt加载失败: {QtCore}, {QtGui}, {QtWidgets}, {wrapInstance}") class ToolShelf(QtWidgets.QToolBar): def __init__(self, parent=None):