This commit is contained in:
Jeffreytsai1004 2025-02-11 00:04:32 +08:00
parent e291c1c7a7
commit b6b063e68c
11 changed files with 85 additions and 143 deletions

View File

@ -11,24 +11,11 @@ import os
from scripts import config from scripts import config
try: QtCore, QtGui, QtWidgets, wrapInstance = config.Qt()
from PySide2 import QtCore, QtGui, QtWidgets
from shiboken2 import wrapInstance if QtCore is None or QtGui is None or QtWidgets is None or wrapInstance is None:
print("从PySide2加载Qt和shiboken2")
except ImportError: print(f"Qt加载失败: {QtCore}, {QtGui}, {QtWidgets}, {wrapInstance}")
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
TOOL_NAME = config.TOOL_NAME TOOL_NAME = config.TOOL_NAME
TOOL_ICON = config.TOOL_ICON TOOL_ICON = config.TOOL_ICON

View File

@ -1,12 +1,18 @@
#!/usr/bin/env python #!/usr/bin/env python
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from PySide2 import QtCore, QtGui, QtWidgets
import maya.OpenMayaUI as omui import maya.OpenMayaUI as omui
from shiboken2 import wrapInstance
from scripts import config from scripts import config
from scripts.ui import menu, toolshelf, meshes, rigging, behaviour, definition 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): class MetaFusion(QtWidgets.QMainWindow):
def __init__(self, parent=None): def __init__(self, parent=None):
super(MetaFusion, self).__init__(parent) super(MetaFusion, self).__init__(parent)
@ -19,8 +25,8 @@ class MetaFusion(QtWidgets.QMainWindow):
# === 设置窗口属性 === # === 设置窗口属性 ===
self.setWindowTitle(f"{config.TOOL_NAME} {config.TOOL_VERSION}") self.setWindowTitle(f"{config.TOOL_NAME} {config.TOOL_VERSION}")
# 设置初始大小和最小大小 # 设置初始大小和最小大小
self.resize(550, 800) # 初始大小 self.resize(550, 820) # 初始大小
self.setMinimumSize(550, 800) # 最小大小限制 self.setMinimumSize(550, 820) # 最小大小限制
# === 创建中心部件 === # === 创建中心部件 ===
self.central_widget = QtWidgets.QWidget() self.central_widget = QtWidgets.QWidget()

View File

@ -7,37 +7,16 @@ from . import config
# 确保PYDNA_PATH在sys.path中 # 确保PYDNA_PATH在sys.path中
if config.PYDNA_PATH not in 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模块 # 先导入dna模块
try: try:
import dna import dna
except ImportError as e: except ImportError as e:
# 更详细的错误信息 print(f"DNA模块导入失败: {str(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}")
raise raise
# 现在导入其他模块 # 修改为绝对导入
from .api import build_meshes, build_rig from .api import build_meshes, build_rig
from .builder.config import Config, RigConfig from .builder.config import Config, RigConfig
from .builder.maya.skin_weights import ( from .builder.maya.skin_weights import (
@ -46,7 +25,7 @@ from .builder.maya.skin_weights import (
) )
from .dnalib.dnalib import DNA from .dnalib.dnalib import DNA
from .dnalib.layer import Layer from .dnalib.layer import Layer
from .MetaFusion import show from .MetaFusion import show # 改为绝对导入
from .config import __version__ from .config import __version__
__all__ = [ __all__ = [

View File

@ -10,11 +10,41 @@ import datetime
import sys import sys
import os 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" __version__ = "2.1.1"
# Base Information # Base Information
TOOL_NAME = str("MetaFusion") TOOL_NAME = str("MetaFusion")
TOOL_VERSION = str("Beta v1.0.0") TOOL_VERSION = str("Beta v1.0.0")
TOOL_AUTHOR = str("CGNICO") TOOL_AUTHOR = str("CGNICO")
TOOL_LANG = str('en_US') TOOL_LANG = str('en_US')
TOOL_WSCL_NAME = str(f"{TOOL_NAME}WorkSpaceControl") TOOL_WSCL_NAME = str(f"{TOOL_NAME}WorkSpaceControl")

View File

@ -12,24 +12,10 @@ import os
from scripts import config from scripts import config
try: QtCore, QtGui, QtWidgets, wrapInstance = config.Qt()
from PySide2 import QtCore, QtGui, QtWidgets
from shiboken2 import wrapInstance if QtCore is None or QtGui is None or QtWidgets is None or wrapInstance is None:
print("从PySide2加载Qt和shiboken2") print(f"Qt加载失败: {QtCore}, {QtGui}, {QtWidgets}, {wrapInstance}")
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
class BehaviourTab(QtWidgets.QWidget): class BehaviourTab(QtWidgets.QWidget):
def __init__(self, parent=None): def __init__(self, parent=None):

View File

@ -10,26 +10,12 @@ import webbrowser
import sys import sys
import os import os
from scripts import config from scripts import config # 改为绝对导入
try: QtCore, QtGui, QtWidgets, wrapInstance = config.Qt()
from PySide2 import QtCore, QtGui, QtWidgets
from shiboken2 import wrapInstance if QtCore is None or QtGui is None or QtWidgets is None or wrapInstance is None:
print("从PySide2加载Qt和shiboken2") print(f"Qt加载失败: {QtCore}, {QtGui}, {QtWidgets}, {wrapInstance}")
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
class DefinitionTab(QtWidgets.QWidget): class DefinitionTab(QtWidgets.QWidget):
def __init__(self, parent=None): def __init__(self, parent=None):

View File

@ -10,26 +10,12 @@ import webbrowser
import sys import sys
import os import os
from scripts import config from .. import config
try: QtCore, QtGui, QtWidgets, wrapInstance = config.Qt()
from PySide2 import QtCore, QtGui, QtWidgets
from shiboken2 import wrapInstance if QtCore is None or QtGui is None or QtWidgets is None or wrapInstance is None:
print("从PySide2加载Qt和shiboken2") print(f"Qt加载失败: {QtCore}, {QtGui}, {QtWidgets}, {wrapInstance}")
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
class MenuBar(QtWidgets.QMenuBar): class MenuBar(QtWidgets.QMenuBar):
def __init__(self, parent=None): def __init__(self, parent=None):

View File

@ -10,26 +10,12 @@ import webbrowser
import sys import sys
import os import os
from scripts import config from .. import config
try: QtCore, QtGui, QtWidgets, wrapInstance = config.Qt()
from PySide2 import QtCore, QtGui, QtWidgets
from shiboken2 import wrapInstance if QtCore is None or QtGui is None or QtWidgets is None or wrapInstance is None:
print("从PySide2加载Qt和shiboken2") print(f"Qt加载失败: {QtCore}, {QtGui}, {QtWidgets}, {wrapInstance}")
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
class MeshItem(QtWidgets.QWidget): class MeshItem(QtWidgets.QWidget):
"""单个网格项控件""" """单个网格项控件"""

View File

@ -12,24 +12,10 @@ import os
from scripts import config from scripts import config
try: QtCore, QtGui, QtWidgets, wrapInstance = config.Qt()
from PySide2 import QtCore, QtGui, QtWidgets
from shiboken2 import wrapInstance if QtCore is None or QtGui is None or QtWidgets is None or wrapInstance is None:
print("从PySide2加载Qt和shiboken2") print(f"Qt加载失败: {QtCore}, {QtGui}, {QtWidgets}, {wrapInstance}")
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
class RiggingTab(QtWidgets.QWidget): class RiggingTab(QtWidgets.QWidget):
def __init__(self, parent=None): def __init__(self, parent=None):

View File

@ -1,8 +1,12 @@
#!/usr/bin/env python #!/usr/bin/env python
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from PySide2 import QtCore, QtGui, QtWidgets from .. import config
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 ToolShelf(QtWidgets.QWidget): class ToolShelf(QtWidgets.QWidget):
def __init__(self, parent=None): def __init__(self, parent=None):

View File

@ -9,7 +9,13 @@ import maya.mel as mel
import webbrowser import webbrowser
import sys import sys
import os 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): class ToolShelf(QtWidgets.QToolBar):
def __init__(self, parent=None): def __init__(self, parent=None):