Base
This commit is contained in:
138
scripts/ui/toolbar.py
Normal file
138
scripts/ui/toolbar.py
Normal file
@@ -0,0 +1,138 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
"""
|
||||
Toolbar UI Module for Plugin
|
||||
工具栏UI模块 - 负责显示工具栏界面和基础操作
|
||||
基本功能:
|
||||
- 加载预设
|
||||
- 保存预设
|
||||
- 导入DNA
|
||||
- 导出DNA
|
||||
- 创建RL4节点(用于切换DNA编辑的状态)
|
||||
- 删除RL4节点(用于切换DNA编辑的状态)
|
||||
"""
|
||||
|
||||
#===================================== IMPORT MODULES =====================================
|
||||
from Qt import QtWidgets, QtCore, QtGui
|
||||
from Qt.QtCompat import wrapInstance
|
||||
from maya import OpenMayaUI as omui
|
||||
import sys
|
||||
import os
|
||||
|
||||
#===================================== IMPORT FUNCTIONS ===================================
|
||||
from scripts.utils import utils_toolbar as utils_toolbar
|
||||
from scripts.ui import ui_utils
|
||||
|
||||
#========================================== WIDGETS ==========================================
|
||||
# 全局变量存储UI控件
|
||||
toolbar_buttons = {}
|
||||
dna_dropdown = None
|
||||
status_label = None
|
||||
|
||||
def widgets():
|
||||
"""
|
||||
创建工具栏UI控件
|
||||
"""
|
||||
global toolbar_buttons, dna_dropdown, status_label
|
||||
|
||||
# 工具栏按钮
|
||||
toolbar_buttons["load_preset"] = QtWidgets.QPushButton("加载预设")
|
||||
toolbar_buttons["load_preset"].setSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
|
||||
toolbar_buttons["load_preset"].setMinimumWidth(80)
|
||||
|
||||
toolbar_buttons["save_preset"] = QtWidgets.QPushButton("保存预设")
|
||||
toolbar_buttons["save_preset"].setSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
|
||||
toolbar_buttons["save_preset"].setMinimumWidth(80)
|
||||
|
||||
toolbar_buttons["import_dna"] = QtWidgets.QPushButton("导入DNA")
|
||||
toolbar_buttons["import_dna"].setSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
|
||||
toolbar_buttons["import_dna"].setMinimumWidth(80)
|
||||
|
||||
toolbar_buttons["export_dna"] = QtWidgets.QPushButton("导出DNA")
|
||||
toolbar_buttons["export_dna"].setSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
|
||||
toolbar_buttons["export_dna"].setMinimumWidth(80)
|
||||
|
||||
toolbar_buttons["create_rl4"] = QtWidgets.QPushButton("创建RL4节点")
|
||||
toolbar_buttons["create_rl4"].setSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
|
||||
toolbar_buttons["create_rl4"].setMinimumWidth(100)
|
||||
|
||||
toolbar_buttons["delete_rl4"] = QtWidgets.QPushButton("删除RL4节点")
|
||||
toolbar_buttons["delete_rl4"].setSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
|
||||
toolbar_buttons["delete_rl4"].setMinimumWidth(100)
|
||||
|
||||
# DNA下拉菜单
|
||||
dna_dropdown = QtWidgets.QComboBox()
|
||||
dna_dropdown.addItem("选择DNA文件...")
|
||||
dna_dropdown.setSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
|
||||
dna_dropdown.setMinimumWidth(150)
|
||||
|
||||
# 状态标签
|
||||
status_label = QtWidgets.QLabel("就绪")
|
||||
status_label.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter)
|
||||
status_label.setSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
|
||||
|
||||
#========================================== LAYOUTS ==========================================
|
||||
def layouts(parent_frame=None):
|
||||
"""
|
||||
创建工具栏UI布局
|
||||
|
||||
Args:
|
||||
parent_frame: 父容器控件,由Main.py传入
|
||||
"""
|
||||
# 获取父容器(在Main.py中创建的toolbar_frame)
|
||||
if not parent_frame:
|
||||
parent_frame = ui_utils.get_parent_widget("toolbar_frame")
|
||||
if not parent_frame:
|
||||
print("无法获取父容器,布局创建失败")
|
||||
return
|
||||
|
||||
# 创建主布局
|
||||
main_layout = parent_frame.layout()
|
||||
if not main_layout:
|
||||
print("父容器没有布局,布局创建失败")
|
||||
return
|
||||
|
||||
# 创建工具栏布局
|
||||
toolbar_layout = QtWidgets.QHBoxLayout()
|
||||
toolbar_layout.setContentsMargins(2, 2, 2, 2)
|
||||
toolbar_layout.setSpacing(4)
|
||||
toolbar_layout.setSizeConstraint(QtWidgets.QLayout.SetDefaultConstraint) # 设置布局约束为默认,允许自适应
|
||||
|
||||
# 添加按钮到工具栏
|
||||
toolbar_layout.addWidget(toolbar_buttons["load_preset"])
|
||||
toolbar_layout.addWidget(toolbar_buttons["save_preset"])
|
||||
toolbar_layout.addWidget(QtWidgets.QLabel("|"))
|
||||
toolbar_layout.addWidget(toolbar_buttons["import_dna"])
|
||||
toolbar_layout.addWidget(toolbar_buttons["export_dna"])
|
||||
toolbar_layout.addWidget(QtWidgets.QLabel("|"))
|
||||
toolbar_layout.addWidget(toolbar_buttons["create_rl4"])
|
||||
toolbar_layout.addWidget(toolbar_buttons["delete_rl4"])
|
||||
toolbar_layout.addWidget(QtWidgets.QLabel("|"))
|
||||
toolbar_layout.addWidget(QtWidgets.QLabel("DNA文件:"))
|
||||
toolbar_layout.addWidget(dna_dropdown)
|
||||
toolbar_layout.addStretch()
|
||||
toolbar_layout.addWidget(status_label)
|
||||
|
||||
# 添加到主布局
|
||||
main_layout.addLayout(toolbar_layout)
|
||||
|
||||
#========================================== CONNECTIONS ==========================================
|
||||
def connections():
|
||||
"""
|
||||
连接工具栏UI信号和槽
|
||||
"""
|
||||
# 连接按钮点击事件到占位函数
|
||||
toolbar_buttons["load_preset"].clicked.connect(lambda: print("加载预设功能待实现"))
|
||||
toolbar_buttons["save_preset"].clicked.connect(lambda: print("保存预设功能待实现"))
|
||||
toolbar_buttons["import_dna"].clicked.connect(lambda: print("导入DNA功能待实现"))
|
||||
toolbar_buttons["export_dna"].clicked.connect(lambda: print("导出DNA功能待实现"))
|
||||
toolbar_buttons["create_rl4"].clicked.connect(lambda: print("创建RL4节点功能待实现"))
|
||||
toolbar_buttons["delete_rl4"].clicked.connect(lambda: print("删除RL4节点功能待实现"))
|
||||
|
||||
# 连接下拉菜单选择事件
|
||||
dna_dropdown.currentIndexChanged.connect(lambda index: print(f"选择的DNA文件索引: {index}"))
|
||||
|
||||
#===================================== PLACEHOLDER FUNCTION ===================================
|
||||
def toolbar_temp_function():
|
||||
return utils_toolbar.toolbar_temp_utils_function()
|
Reference in New Issue
Block a user