diff --git a/resources/styles/style.qss b/resources/styles/style.qss index 2157b87..7725090 100644 --- a/resources/styles/style.qss +++ b/resources/styles/style.qss @@ -33,3 +33,195 @@ QPushButton:pressed { .messageButton:pressed { background-color: #A0A0A0; } + +/* MetaFusion 深色主题样式 */ + +/* 主窗口样式 */ +QMainWindow { + background-color: #333333; + color: #CCCCCC; +} + +/* 菜单栏样式 */ +QMenuBar { + background-color: #333333; + color: #CCCCCC; + border-bottom: 1px solid #222222; +} + +QMenuBar::item { + background-color: transparent; + padding: 4px 8px; +} + +QMenuBar::item:selected { + background-color: #444444; +} + +/* 工具栏样式 */ +QToolBar { + background-color: #333333; + border: none; + padding: 3px; +} + +QToolButton { + background-color: transparent; + border: 1px solid transparent; + border-radius: 2px; + padding: 4px; + margin: 1px; +} + +QToolButton:hover { + background-color: #444444; + border: 1px solid #555555; +} + +/* 标签页样式 */ +QTabWidget::pane { + border: 1px solid #222222; + background-color: #333333; +} + +QTabBar::tab { + background-color: #2A2A2A; + color: #CCCCCC; + padding: 5px 10px; + border: 1px solid #222222; + min-width: 80px; +} + +QTabBar::tab:selected { + background-color: #333333; + border-bottom: none; +} + +QTabBar::tab:hover:not(:selected) { + background-color: #3A3A3A; +} + +/* 列表和树形控件样式 */ +QTreeView, QListView { + background-color: #2A2A2A; + border: 1px solid #222222; + color: #CCCCCC; +} + +QTreeView::item:hover, QListView::item:hover { + background-color: #3A3A3A; +} + +QTreeView::item:selected, QListView::item:selected { + background-color: #444444; +} + +/* 输入框样式 */ +QLineEdit { + background-color: #2A2A2A; + border: 1px solid #222222; + border-radius: 2px; + color: #CCCCCC; + padding: 3px; +} + +/* 下拉框样式 */ +QComboBox { + background-color: #2A2A2A; + border: 1px solid #222222; + border-radius: 2px; + color: #CCCCCC; + padding: 3px; + min-width: 100px; +} + +QComboBox::drop-down { + border: none; + width: 20px; +} + +QComboBox::down-arrow { + border-image: url(:/resources/icons/down_arrow.png); + width: 12px; + height: 12px; +} + +/* 按钮样式 */ +QPushButton { + background-color: #2A2A2A; + border: 1px solid #222222; + border-radius: 2px; + color: #CCCCCC; + padding: 5px 15px; + min-width: 80px; +} + +QPushButton:hover { + background-color: #3A3A3A; + border: 1px solid #444444; +} + +QPushButton:pressed { + background-color: #222222; +} + +/* 滚动条样式 */ +QScrollBar:vertical { + background: #2A2A2A; + width: 10px; + margin: 0; +} + +QScrollBar::handle:vertical { + background: #444444; + min-height: 20px; + border-radius: 5px; +} + +QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical { + height: 0px; +} + +QScrollBar:horizontal { + background: #2A2A2A; + height: 10px; + margin: 0; +} + +QScrollBar::handle:horizontal { + background: #444444; + min-width: 20px; + border-radius: 5px; +} + +QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal { + width: 0px; +} + +/* 分组框样式 */ +QGroupBox { + border: 1px solid #222222; + border-radius: 3px; + margin-top: 6px; + padding-top: 6px; + color: #CCCCCC; +} + +QGroupBox::title { + left: 7px; + padding: 0px 3px; +} + +/* 状态栏样式 */ +QStatusBar { + background-color: #333333; + color: #CCCCCC; +} + +/* 工具提示样式 */ +QToolTip { + background-color: #2A2A2A; + border: 1px solid #222222; + color: #CCCCCC; + padding: 3px; +} diff --git a/scripts/MetaFusion.py b/scripts/MetaFusion.py index f450aca..4150d13 100644 --- a/scripts/MetaFusion.py +++ b/scripts/MetaFusion.py @@ -1,2 +1,140 @@ #!/usr/bin/env python -# -*- coding: utf-8 -*- \ No newline at end of file +# -*- coding: utf-8 -*- + +import os +from config import data +QtCore, QtGui, QtWidgets = data.Qt() + + +# 全局变量声明 +main_window = None + +class MetaFusionWindow(QtWidgets.QMainWindow): + def __init__(self, parent=None): + super(MetaFusionWindow, self).__init__(parent) + self.setWindowTitle("MetaFusion") + self.resize(800, 600) + + # 加载样式表 + self.load_stylesheet() + + # 创建UI + self.setup_ui() + + def load_stylesheet(self): + """加载QSS样式表""" + style_file = os.path.join(os.path.dirname(os.path.dirname(__file__)), "resources", "styles", "style.qss") + if os.path.exists(style_file): + with open(style_file, 'r', encoding='utf-8') as f: + self.setStyleSheet(f.read()) + + def setup_ui(self): + """设置UI结构""" + # 创建中心部件 + central_widget = QtWidgets.QWidget() + self.setCentralWidget(central_widget) + + # 创建主布局 + main_layout = QtWidgets.QVBoxLayout(central_widget) + + # 创建菜单栏 + self.create_menu_bar() + + # 创建工具栏 + self.create_tool_bar() + + # 创建标签页 + self.create_tabs() + + def create_menu_bar(self): + """创建菜单栏""" + menubar = self.menuBar() + + # 文件菜单 + file_menu = menubar.addMenu("文件") + file_menu.addAction("新建") + file_menu.addAction("打开") + file_menu.addAction("保存") + file_menu.addSeparator() + file_menu.addAction("退出") + + # 编辑菜单 + edit_menu = menubar.addMenu("编辑") + edit_menu.addAction("撤销") + edit_menu.addAction("重做") + + # 帮助菜单 + help_menu = menubar.addMenu("帮助") + help_menu.addAction("关于") + + def create_tool_bar(self): + """创建工具栏""" + toolbar = self.addToolBar("主工具栏") + toolbar.setMovable(False) + + # 添加工具栏按钮 + toolbar.addAction(QtGui.QIcon(":/icons/new.png"), "新建") + toolbar.addAction(QtGui.QIcon(":/icons/open.png"), "打开") + toolbar.addAction(QtGui.QIcon(":/icons/save.png"), "保存") + + def create_tabs(self): + """创建标签页""" + self.tab_widget = QtWidgets.QTabWidget() + self.centralWidget().layout().addWidget(self.tab_widget) + + # 创建四个主要标签页 + self.model_tab = QtWidgets.QWidget() + self.rig_tab = QtWidgets.QWidget() + self.adjust_tab = QtWidgets.QWidget() + self.define_tab = QtWidgets.QWidget() + + # 添加标签页到标签页控件 + self.tab_widget.addTab(self.model_tab, "模型") + self.tab_widget.addTab(self.rig_tab, "绑定") + self.tab_widget.addTab(self.adjust_tab, "调整") + self.tab_widget.addTab(self.define_tab, "定义") + + # 设置各个标签页的内容 + self.setup_model_tab() + self.setup_rig_tab() + self.setup_adjust_tab() + self.setup_define_tab() + + def setup_model_tab(self): + """设置模型标签页内容""" + layout = QtWidgets.QVBoxLayout(self.model_tab) + # 在这里添加模型标签页的具体控件 + + def setup_rig_tab(self): + """设置绑定标签页内容""" + layout = QtWidgets.QVBoxLayout(self.rig_tab) + # 在这里添加绑定标签页的具体控件 + + def setup_adjust_tab(self): + """设置调整标签页内容""" + layout = QtWidgets.QVBoxLayout(self.adjust_tab) + # 在这里添加调整标签页的具体控件 + + def setup_define_tab(self): + """设置定义标签页内容""" + layout = QtWidgets.QVBoxLayout(self.define_tab) + # 在这里添加定义标签页的具体控件 + +def show(): + """显示主窗口""" + global main_window + + try: + main_window.close() + except: + pass + + main_window = MetaFusionWindow() + main_window.show() + return main_window + +if __name__ == "__main__": + app = QtWidgets.QApplication([]) + window = show() + app.exec_() +