update
This commit is contained in:
parent
643ba521d8
commit
5ee392002e
@ -39,14 +39,19 @@ from scripts.ui.widgets import ModernTabWidget
|
||||
class MainWindow(QtWidgets.QMainWindow):
|
||||
def __init__(self, parent=None):
|
||||
super(MainWindow, self).__init__(parent)
|
||||
|
||||
# 设置窗口属性
|
||||
self.setWindowFlags(QtCore.Qt.Window)
|
||||
self.setAttribute(QtCore.Qt.WA_DeleteOnClose)
|
||||
|
||||
# 设置基础字体大小
|
||||
font = self.font()
|
||||
font.setPointSize(9) # 设置基础字号
|
||||
font.setPointSize(9)
|
||||
self.setFont(font)
|
||||
|
||||
# 设置窗口大小
|
||||
self.resize(700, 600) # 调整为更合适的尺寸
|
||||
self.setMinimumSize(700, 500)
|
||||
# 设置窗口尺寸
|
||||
self.resize(550, 700) # 调整为更大的初始尺寸
|
||||
self.setMinimumSize(550, 700) # 设置最小尺寸限制
|
||||
|
||||
self.setup_core_components()
|
||||
|
||||
@ -130,9 +135,19 @@ def dock_to_maya():
|
||||
data.TOOL_WSCL_NAME,
|
||||
label=data.TOOL_NAME,
|
||||
tabToControl=["AttributeEditor", -1],
|
||||
initialWidth=1400,
|
||||
minimumWidth=1000,
|
||||
minimumHeight=800
|
||||
initialWidth=550,
|
||||
initialHeight=700,
|
||||
minimumWidth=550,
|
||||
minimumHeight=700,
|
||||
floating=True, # 设置为悬浮状态
|
||||
retain=False # 不保存上次的停靠状态
|
||||
)
|
||||
|
||||
# 确保窗口显示在合适的位置
|
||||
cmds.workspaceControl(
|
||||
data.TOOL_WSCL_NAME,
|
||||
e=True,
|
||||
restore=True
|
||||
)
|
||||
|
||||
maya_dock_ptr = omui.MQtUtil.findControl(dock_control)
|
||||
|
@ -5,18 +5,18 @@ from typing import Dict, List
|
||||
@dataclass
|
||||
class Point3:
|
||||
"""
|
||||
A model class for representing a 3 dimensional point
|
||||
表示三维空间中的点的模型类
|
||||
|
||||
Attributes
|
||||
属性
|
||||
----------
|
||||
@type x: float
|
||||
@param x: The value of x
|
||||
@param x: x坐标值
|
||||
|
||||
@type y: float
|
||||
@param y: The value of y
|
||||
@param y: y坐标值
|
||||
|
||||
@type z: float
|
||||
@param z: The value of z
|
||||
@param z: z坐标值
|
||||
"""
|
||||
|
||||
x: float = field(default=0.0)
|
||||
@ -27,15 +27,15 @@ class Point3:
|
||||
@dataclass
|
||||
class UV:
|
||||
"""
|
||||
A model class for holding data about the UV
|
||||
用于保存UV数据的模型类
|
||||
|
||||
Attributes
|
||||
属性
|
||||
----------
|
||||
@type u: float
|
||||
@param u: The value of u
|
||||
@param u: u坐标值
|
||||
|
||||
@type v: float
|
||||
@param v: The value of v
|
||||
@param v: v坐标值
|
||||
"""
|
||||
|
||||
u: float = field(default=0.0)
|
||||
@ -45,15 +45,15 @@ class UV:
|
||||
@dataclass
|
||||
class Layout:
|
||||
"""
|
||||
A model class for holding data about a single layout
|
||||
用于保存单个Layout数据的模型类
|
||||
|
||||
Attributes
|
||||
属性
|
||||
----------
|
||||
@type position_index: int
|
||||
@param position_index: An index representing position
|
||||
@param position_index: 表示位置的索引
|
||||
|
||||
@type texture_coordinate_index: int
|
||||
@param texture_coordinate_index: A value representing the texture coordinate index
|
||||
@param texture_coordinate_index: 表示纹理坐标的索引值
|
||||
"""
|
||||
|
||||
position_index: int = field(default=0)
|
||||
@ -63,21 +63,21 @@ class Layout:
|
||||
@dataclass
|
||||
class Topology:
|
||||
"""
|
||||
A model class for holding data about the topology
|
||||
用于保存拓扑数据的模型类
|
||||
|
||||
Attributes
|
||||
属性
|
||||
----------
|
||||
@type positions: List[Point3]
|
||||
@param positions: List of points in space representing the positions
|
||||
@param positions: 表示位置的空间点列表
|
||||
|
||||
@type texture_coordinates: List[UV]
|
||||
@param texture_coordinates: List of UVs representing the positions
|
||||
@param texture_coordinates: 表示UV位置的列表
|
||||
|
||||
@type layouts: List[Layout]
|
||||
@param layouts: The list of Layout mappings
|
||||
@param layouts: Layout映射列表
|
||||
|
||||
@type face_vertex_layouts: List[List[int]]
|
||||
@param face_vertex_layouts: List of face vertex layout indices by face index
|
||||
@param face_vertex_layouts: 按面索引排列的面顶点Layout索引列表
|
||||
"""
|
||||
|
||||
positions: List[Point3] = field(default_factory=list)
|
||||
@ -89,15 +89,15 @@ class Topology:
|
||||
@dataclass
|
||||
class BlendShape:
|
||||
"""
|
||||
A model class for holding data about the blend shape
|
||||
用于保存BlendShape数据的模型类
|
||||
|
||||
Attributes
|
||||
属性
|
||||
----------
|
||||
@type channel: int
|
||||
@param channel: The index pointing to the blend shape name
|
||||
@param channel: 指向BlendShape名称的索引
|
||||
|
||||
@type deltas: Dict[int, Point3]
|
||||
@param deltas: A mapping of blend shape indices to the coordinate differences that are made by the blend shape
|
||||
@param deltas: BlendShape索引到坐标差值的映射
|
||||
"""
|
||||
|
||||
channel: int = field(default=None)
|
||||
@ -107,16 +107,15 @@ class BlendShape:
|
||||
@dataclass
|
||||
class SkinWeightsData:
|
||||
"""
|
||||
A model class for holding data about the skin weights
|
||||
用于保存蒙皮权重数据的模型类
|
||||
|
||||
Attributes
|
||||
属性
|
||||
----------
|
||||
|
||||
@type values: List[List[float]]
|
||||
@param values: The skin weight values per vertex index
|
||||
@param values: 每个顶点索引的蒙皮权重值
|
||||
|
||||
@type joint_indices: List[List[int]]
|
||||
@param joint_indices: The joint indces per vertex index
|
||||
@param joint_indices: 每个顶点索引的关节索引
|
||||
"""
|
||||
|
||||
values: List[List[float]] = field(default_factory=list)
|
||||
@ -126,21 +125,21 @@ class SkinWeightsData:
|
||||
@dataclass
|
||||
class Mesh:
|
||||
"""
|
||||
A model class for holding data about the mesh
|
||||
用于保存网格数据的模型类
|
||||
|
||||
Attributes
|
||||
属性
|
||||
----------
|
||||
@type name: str
|
||||
@param name: The name of the mesh
|
||||
@param name: 网格名称
|
||||
|
||||
@type topology: Topology
|
||||
@param topology: Data containing the topology of the mesh
|
||||
@param topology: 包含网格拓扑数据
|
||||
|
||||
@type skin_weights: SkinWeightsData
|
||||
@param skin_weights: Data representing skin weights
|
||||
@param skin_weights: 表示蒙皮权重的数据
|
||||
|
||||
@type blend_shapes: List[BlendShape]
|
||||
@param blend_shapes: The list of blend shapes for the mesh
|
||||
@param blend_shapes: 网格的BlendShape列表
|
||||
"""
|
||||
|
||||
name: str = field(default=None)
|
||||
@ -152,21 +151,21 @@ class Mesh:
|
||||
@dataclass
|
||||
class Joint:
|
||||
"""
|
||||
A model class for holding data about a single joint
|
||||
用于保存单个关节数据的模型类
|
||||
|
||||
Attributes
|
||||
属性
|
||||
----------
|
||||
@type name: str
|
||||
@param name: The name of the joint
|
||||
@param name: 关节名称
|
||||
|
||||
@type translation: Point3
|
||||
@param translation: A point in 3 dimensional space which represents the translation of the joint
|
||||
@param translation: 表示关节位移的三维空间点
|
||||
|
||||
@type orientation: Point3
|
||||
@param orientation: A point in 3 dimensional space which represents the orientation of the joint
|
||||
@param orientation: 表示关节方向的三维空间点
|
||||
|
||||
@type parent_name: str
|
||||
@param parent_name: The name of the parent joint
|
||||
@param parent_name: 父关节名称
|
||||
"""
|
||||
|
||||
name: str = field(default=None)
|
||||
|
@ -111,22 +111,23 @@ class MenuManager:
|
||||
def _create_toolbar(self):
|
||||
"""创建工具栏"""
|
||||
toolbar = self.parent.addToolBar("主工具栏")
|
||||
toolbar.setMovable(True) # 允许移动
|
||||
toolbar.setFloatable(True) # 允许浮动
|
||||
toolbar.setMovable(True)
|
||||
toolbar.setFloatable(True)
|
||||
toolbar.setIconSize(QtCore.QSize(24, 24))
|
||||
|
||||
# 定义工具栏按钮
|
||||
# 定义工具栏按钮 (text, icon, callback, tooltip)
|
||||
toolbar_items = [
|
||||
("保存DNA", "save.png", menu_utils.save_dna),
|
||||
("加载当前项目DNA", "open.png", menu_utils.load_project_dna),
|
||||
("保存DNA", "save.png", menu_utils.save_dna, "保存DNA"),
|
||||
("加载当前项目DNA", "open.png", menu_utils.load_dna, "加载DNA"),
|
||||
None,
|
||||
("创建RL4节点", "connect.png", adjust_utils.create_rl4_node),
|
||||
("删除RL4节点", "disconnect.png", adjust_utils.delete_rl4_node),
|
||||
("创建RL4节点", "connect.png", adjust_utils.create_rl4_node, "连接表情控制"),
|
||||
("删除RL4节点", "disconnect.png", adjust_utils.delete_rl4_node, "断开表情控制"),
|
||||
None,
|
||||
("导入FBX蒙皮", "export_skin.png", rigging_utils.import_skin),
|
||||
("导出FBX蒙皮", "export_skin.png", rigging_utils.export_skin),
|
||||
("导入FBX蒙皮", "import_skin.png", rigging_utils.import_skin, "导入蒙皮"),
|
||||
("导出FBX蒙皮", "export_skin.png", rigging_utils.export_skin, "导出蒙皮"),
|
||||
None,
|
||||
("帮助文档", "help.png", menu_utils.show_help),
|
||||
("关于", "warning.png", menu_utils.show_about)
|
||||
("帮助文档", "help.png", menu_utils.show_help, "帮助文档"),
|
||||
("关于", "warning.png", menu_utils.show_about, "关于MetaFusion")
|
||||
]
|
||||
|
||||
self._add_toolbar_items(toolbar, toolbar_items)
|
||||
@ -152,11 +153,12 @@ class MenuManager:
|
||||
if item is None:
|
||||
toolbar.addSeparator()
|
||||
else:
|
||||
text, icon, callback = item
|
||||
text, icon, callback, tooltip = item # 现在解包4个值
|
||||
action = QtWidgets.QAction(text, self.parent)
|
||||
if icon:
|
||||
icon_path = os.path.join(data.ICONS_PATH, icon)
|
||||
if os.path.exists(icon_path):
|
||||
action.setIcon(QtGui.QIcon(icon_path))
|
||||
action.setToolTip(tooltip) # 设置工具提示
|
||||
action.triggered.connect(lambda checked=False, fn=callback: fn())
|
||||
toolbar.addAction(action)
|
Loading…
Reference in New Issue
Block a user