90 lines
2.7 KiB
Python
90 lines
2.7 KiB
Python
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
|
|
import os
|
|
import sys
|
|
from maya import cmds
|
|
import maya.OpenMayaUI as omui
|
|
from PySide2 import QtWidgets, QtCore
|
|
from shiboken2 import wrapInstance
|
|
|
|
from . import config
|
|
from .ui import menu, toolshelf
|
|
from .utils import maya_utils
|
|
|
|
class MetaFusion(QtWidgets.QMainWindow):
|
|
def __init__(self, parent=None):
|
|
super(MetaFusion, self).__init__(parent)
|
|
|
|
# 设置窗口标题和基本属性
|
|
self.setWindowTitle("MetaFusion")
|
|
self.setMinimumSize(1200, 800)
|
|
|
|
# 加载样式表
|
|
style_file = os.path.join(os.path.dirname(__file__), "ui", "style.qss")
|
|
with open(style_file, "r", encoding="utf-8") as f:
|
|
self.setStyleSheet(f.read())
|
|
|
|
# 创建主窗口部件
|
|
self.main_widget = QtWidgets.QWidget()
|
|
self.setCentralWidget(self.main_widget)
|
|
|
|
# 创建主布局
|
|
self.main_layout = QtWidgets.QVBoxLayout(self.main_widget)
|
|
|
|
# 初始化UI组件
|
|
self._init_ui()
|
|
|
|
def _init_ui(self):
|
|
"""初始化UI组件"""
|
|
# 创建工具架
|
|
self.tool_shelf = toolshelf.ToolShelf(self)
|
|
self.main_layout.addWidget(self.tool_shelf)
|
|
|
|
# 创建标签页
|
|
self.tab_widget = QtWidgets.QTabWidget()
|
|
self.main_layout.addWidget(self.tab_widget)
|
|
|
|
# 添加各个功能页面
|
|
self._add_meshes_tab()
|
|
self._add_rigging_tab()
|
|
self._add_behaviour_tab()
|
|
self._add_definition_tab()
|
|
|
|
def _add_meshes_tab(self):
|
|
"""添加模型页面"""
|
|
from .ui.meshes import MeshesTab
|
|
meshes_widget = MeshesTab()
|
|
self.tab_widget.addTab(meshes_widget, "模型")
|
|
|
|
def _add_rigging_tab(self):
|
|
"""添加绑定页面"""
|
|
from .ui.rigging import RiggingTab
|
|
rigging_widget = RiggingTab()
|
|
self.tab_widget.addTab(rigging_widget, "绑定")
|
|
|
|
|
|
def _add_behaviour_tab(self):
|
|
"""添加行为页面"""
|
|
from .ui.behaviour import BehaviourTab
|
|
behaviour_widget = BehaviourTab()
|
|
self.tab_widget.addTab(behaviour_widget, "行为")
|
|
|
|
|
|
def _add_definition_tab(self):
|
|
"""添加定义页面"""
|
|
from .ui.definition import DefinitionTab
|
|
definition_widget = DefinitionTab()
|
|
self.tab_widget.addTab(definition_widget, "定义")
|
|
|
|
|
|
def show():
|
|
"""显示主窗口"""
|
|
# 获取Maya主窗口
|
|
maya_main_window = wrapInstance(int(omui.MQtUtil.mainWindow()), QtWidgets.QWidget)
|
|
|
|
# 创建并显示插件窗口
|
|
global meta_fusion_window
|
|
meta_fusion_window = MetaFusion(parent=maya_main_window)
|
|
meta_fusion_window.show()
|