#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ MetaCore 应用程序样式表定义 本文件包含了 MetaCore 项目管理平台的完整 UI 样式定义,采用现代化的深色主题设计。 样式表使用 Qt StyleSheet (QSS) 语法,类似于 CSS,为应用程序提供统一的视觉风格。 主要特色: - 深色主题设计,护眼且现代 - 紫色主色调 (#8b5cf6),体现科技感 - 丰富的交互效果和动画 - 响应式设计,支持不同屏幕尺寸 - 完整的组件样式覆盖 作者: MetaCore Team 版本: 1.0.0 更新日期: 2024 """ class StyleSheet: """ 样式表管理类 这个类负责管理整个应用程序的样式表,提供统一的样式获取接口。 采用静态方法设计,方便在应用程序的任何地方调用。 主要功能: - 提供完整的应用程序样式表 - 统一管理颜色主题和设计规范 - 支持未来的主题切换扩展 """ @staticmethod def get_main_style(): """ 获取主样式表 返回完整的 QSS 样式表字符串,包含所有 UI 组件的样式定义。 样式表采用分层设计,从全局样式到具体组件样式,确保样式的一致性和可维护性。 样式表结构: 1. 全局样式 - 基础颜色、字体等 2. 主窗口样式 - 窗口背景等 3. 侧边栏样式 - 导航、按钮等 4. 项目区域样式 - 工具栏、搜索等 5. 项目卡片样式 - 卡片布局和交互 6. 对话框样式 - 弹窗和表单 7. 通用组件样式 - 滚动条、菜单等 Returns: str: 完整的 QSS 样式表字符串 """ return """ /* ---------- Base Theme ---------- */ QWidget { background-color: #0f1115; color: #f3f4f8; font-family: "Inter", "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 14px; } QMainWindow { background-color: #0f1115; } #sidebar { background-color: #000000; border-right: 1px solid #1c2029; width: 313px; } #logoWidget { background-color: transparent; border-bottom: 1px solid rgba(84, 89, 98, 0.8); margin: 0 46px 0 37px; } #logoIcon { background-color: #2a2f3b; border: 1px solid #303543; border-radius: 4px; min-width: 80px; min-height: 80px; } #logoText { background-color: transparent; color: #FFFFFF; font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 24px; font-weight: 500; /* Medium weight in Qt */ letter-spacing: 0.4px; } #quickActions { background-color: transparent; } QPushButton#createBtn, QPushButton#sidebarImportBtn { background-color: rgba(84, 89, 98, 0.2); border: 1px solid #979fad; border-radius: 6px; color: #ffffff; font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-weight: 300; font-size: 16px; letter-spacing: 0.8px; padding: 0px 16px; text-align: center; min-height: 36px; max-height: 36px; } QPushButton#createBtn:hover, QPushButton#sidebarImportBtn:hover { background-color: rgba(84, 89, 98, 0.3); border-color: #a5abb8; } QPushButton#createBtn:pressed, QPushButton#sidebarImportBtn:pressed { background-color: #2B56C5; border-color: #b0b6c3; } #navScrollArea { background-color: #000000; border: none; } #navWidget { background-color: #000000; } #navSection { margin-top: 0px; } QPushButton#navSectionTitle { border: none; background: #000000; color: #ffffff; font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 16px; font-weight: 500; letter-spacing: 0.8px; padding: 0px 37px; text-align: left; min-height: 20px; max-height: 20px; } QWidget#navItems { background: #000000; } QPushButton#navItem { border: none; border-left: 3px solid transparent; border-radius: 4px; background: #000000; color: #ebebeb; font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 14px; font-weight: 300; letter-spacing: 0.7px; padding: 0px; padding-left: 20px; text-align: left; min-width: 186px; max-width: 186px; min-height: 30px; max-height: 30px; } QPushButton#navItem:hover { background-color: rgba(84, 89, 98, 0.3); color: #ffffff; } QPushButton#navItem:checked { background-color: rgba(84, 89, 98, 0.5); color: #ffffff; border-left: 3px solid transparent; font-weight: 300; } QPushButton#navItem::icon { padding-right: 8px; } /* ---------- Content Area ---------- */ #projectArea { background-color: #000000; } #contentHeader { background: transparent; border-bottom: 1px solid #1f2532; margin: 0 36px; /* 上下为0,左右为36px */ } #breadcrumbContainer { background: 19191b; } #breadcrumbBase { background: transparent; color: rgba(255, 255, 255, 0.7); font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 20px; font-weight: 400; letter-spacing: 1px; } #breadcrumbSeparator { background: transparent; color: rgba(255, 255, 255, 0.7); padding: 0 8px; font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 20px; font-weight: 400; letter-spacing: 1px; } #breadcrumbCurrent { background: transparent; color: #ffffff; font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 24px; font-weight: 500; letter-spacing: 1.2px; } QLineEdit#searchInput { background-color: rgba(84, 89, 98, 0.2); border: 1px solid rgba(92, 97, 105, 0.8); border-radius: 4px; color: #5c6169; font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 18px; font-weight: 300; letter-spacing: 0.9px; padding: 0px 16px 0px 10px; min-height: 39px; max-height: 39px; } QLineEdit#searchInput:focus { border-color: rgba(92, 97, 105, 1.0); background-color: rgba(84, 89, 98, 0.25); } QLineEdit#searchInput::placeholder { color: #5c6169; font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 18px; font-weight: 300; letter-spacing: 0.9px; } QScrollArea#projectScrollArea { background: transparent; border: none; } #projectsContainer { background-color: transparent; } #projectCard { background-color: transparent; border: none; border-radius: 5px; min-width: 276px; max-width: 276px; min-height: 191px; max-height: 191px; } #projectCard:hover { /* 悬停效果通过子组件实现 */ } #projectHeader { background: transparent; border-bottom: none; } #projectTitle { color: #d4d4d4; font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 17.3px; font-weight: 500; letter-spacing: 0.865px; } QPushButton#menuBtn { background: #424347; border: 1px solid rgba(235, 235, 235, 0.2); color: #ebebeb; padding: 0px; border-radius: 1px; } QPushButton#menuBtn:hover { background-color: rgba(235, 235, 235, 0.1); border-color: rgba(235, 235, 235, 0.3); } /* 新的覆盖按钮样式 - 完全去掉外层圈 */ QPushButton#overlayInfoBtn, QPushButton#overlayDeleteBtn { background-color: transparent; border: none; border-radius: 0px; color: #ffffff; font-size: 12px; font-weight: 400; outline: none; padding: 0px; margin: 0px; } QPushButton#overlayInfoBtn:hover, QPushButton#overlayDeleteBtn:hover { background-color: transparent; border: none; outline: none; } QPushButton#overlayInfoBtn:pressed, QPushButton#overlayDeleteBtn:pressed { background-color: transparent; border: none; outline: none; } QPushButton#overlayInfoBtn:focus, QPushButton#overlayDeleteBtn:focus { background-color: transparent; border: none; outline: none; } QPushButton#overlayDeleteBtn { color: #ff6b6b; } QPushButton#overlayDeleteBtn:hover { background-color: rgba(255, 107, 107, 0.1); border-color: rgba(255, 107, 107, 0.3); } #projectImageContainer { padding: 0 20px; } #projectImage { background-color: #292f3d; border-radius: 5px; min-height: 140px; } #projectIcon { font-size: 36px; color: #596074; } #projectFooter { background: #424347; border-top: none; margin-top: 0px; padding: 12px 20px; min-height: 53px; max-height: 53px; } #projectDate { color: #d4d4d4; font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 12.36px; font-weight: 300; letter-spacing: 0.618px; } /* 新的覆盖层样式 */ #overlayProjectTitle { color: #d4d4d4; font-family: "Inter", sans-serif; font-size: 17px; font-weight: 500; background: transparent; } #overlayProjectDate, #overlayProjectSize { color: #d4d4d4; font-family: "Inter", sans-serif; font-size: 12px; font-weight: 300; background: transparent; } #bottomOverlay { background-color: rgba(66, 67, 71, 0.9); border-radius: 0px; } /* ---------- Project Settings Page ---------- */ #settingsPage { background-color: #000000; } #settingsBody, #settingsSection, #settingsFieldRow { background-color: transparent; } #settingsTitle { color: #ffffff; font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 28px; font-weight: 600; letter-spacing: 1.1px; } #settingsSubtitle { color: rgba(236, 239, 246, 0.72); font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 15px; font-weight: 300; letter-spacing: 0.5px; } #settingsDivider { background-color: #1f2532; border: none; min-height: 1px; max-height: 1px; margin: 0 36px; } #settingsCard { background-color: transparent; border: none; } #settingsRow { background-color: transparent; } #settingsSectionTitle { background-color: transparent; color: #ffffff; font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 20px; font-weight: 500; letter-spacing: 0.5px; } #settingsSectionDesc { color: rgba(255, 255, 255, 0.6); font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 14px; font-weight: 300; letter-spacing: 0.3px; } QWidget#settingsFieldRow { background-color: transparent; } QLineEdit#settingsPathInput { background-color: rgba(89, 100, 113, 0.2); border: 1px solid rgba(89, 100, 113, 0.2); border-radius: 4px; color: #e6e9f2; padding: 0 18px; min-height: 48px; } QLineEdit#settingsPathInput:focus { border-color: rgba(110, 118, 134, 0.95); background-color: #1f2430; } QLineEdit#settingsPathInput::placeholder { color: rgba(255, 255, 255, 0.7); font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 16px; } QPushButton#settingsPrimaryBtn, QPushButton#settingsGhostBtn { background-color: rgba(76, 92, 110, 0.6); border: none; border-radius: 4px; color: #ffffff; font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 16px; font-weight: 500; letter-spacing: 0.4px; min-height: 48px; min-width: 175px; } QPushButton#settingsPrimaryBtn:hover, QPushButton#settingsGhostBtn:hover { background-color: rgba(76, 92, 110, 0.8); } QPushButton#settingsPrimaryBtn:pressed, QPushButton#settingsGhostBtn:pressed { background-color: rgba(45, 94, 221, 0.4); } /* ---------- Scrollbars ---------- */ QScrollBar:vertical { background: transparent; width: 12px; margin: 8px 0; } QScrollBar::handle:vertical { background: #2b313f; border-radius: 6px; min-height: 32px; } QScrollBar::handle:vertical:hover { background: #3a4254; } QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical { height: 0; } QScrollBar:horizontal { background: transparent; height: 12px; margin: 0 8px; } QScrollBar::handle:horizontal { background: #2b313f; border-radius: 6px; min-width: 32px; } QScrollBar::handle:horizontal:hover { background: #3a4254; } QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal { width: 0; } QToolTip { background-color: #1c202b; color: #f5f6f9; border: 1px solid #2a303d; padding: 6px 8px; } /* ---------- Create Project Dialog ---------- */ QDialog#CreateProjectDialog { background-color: #0c0c0d; border-radius: 5px; } #createProjectContent{ background-color: #0c0c0d; border-radius: 5px; } #templateSection { background-color: #0c0c0d; } QDialog#CreateProjectDialog QLabel#templateHeaderLabel { background-color: rgba(66, 67, 71, 0.2); min-width: 724px; max-width: 724px; min-height: 33px; max-height: 33px; color: #ffffff; font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.6px; padding: 0 20px; } QDialog#CreateProjectDialog QLabel#sectionTitle{ color: #ffffff; border: none; background-color: transparent; font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 14px; font-weight: 500; letter-spacing: 0.7px; } QDialog#CreateProjectDialog QLabel#templateDescription { border: none; background-color: transparent; font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 10px; } QScrollArea#templateScrollArea { background-color: transparent; border: 0px solid rgba(66, 67, 71, 0.35); } #projectInfoSection { background-color: #19191B; } #projectInfoHeader{ background-color: #19191B; } #templatesContainer { background-color: rgba(66, 67, 71, 0.2); } QPushButton#templateItem { background-color: rgba(66, 67, 71, 0.4); border: 1px solid transparent; border-radius: 5px; color: #ffffff; } QPushButton#templateItem:hover { background-color: rgba(66, 67, 71, 0.6); border-color: rgba(43, 86, 197, 0.3); } QPushButton#templateItem:checked { background-color: rgba(43, 86, 197, 0.2); /* #2B56C5 20%透明度 */ border: 1px solid #2b56c5; } #templateIcon { color: #ffffff; font-size: 32px; background: transparent; } #templateName { color: #ffffff; font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 12px; font-weight: 400; letter-spacing: 0.6px; background: transparent; } #templateDescription { color: rgba(255, 255, 255, 0.7); font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 10px; font-weight: 300; letter-spacing: 0.5px; line-height: 1.2; background: transparent; } #formLabel { color: #ffffff; font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 14px; font-weight: 500; letter-spacing: 0.7px; background: transparent; margin-bottom: 5px; } QLineEdit#formInput { background-color: rgba(89, 100, 113, 0.2); border: none; border-radius: 4px; color: #ffffff; font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 12px; font-weight: 300; letter-spacing: 0.6px; padding: 0px 10px; } QLineEdit#formInput:focus { border-color: rgba(76, 92, 110, 1.0); background-color: rgba(89, 100, 113, 0.3); } QLineEdit#formInput::placeholder { color: rgba(235, 235, 235, 0.7); font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 12px; font-weight: 300; letter-spacing: 0.6px; } QLineEdit#formInput[error="true"] { border-color: #ff6b6b; background-color: rgba(255, 107, 107, 0.1); } QLineEdit#formInput[valid="true"] { border-color: #4ade80; background-color: rgba(74, 222, 128, 0.1); } QTextEdit#formTextArea { background-color: rgba(89, 100, 113, 0.2); border: 1px solid rgba(76, 92, 110, 0.6); border-radius: 4px; color: #ffffff; font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 12px; font-weight: 300; letter-spacing: 0.6px; padding: 8px 10px; } QTextEdit#formTextArea:focus { border-color: rgba(76, 92, 110, 1.0); background-color: rgba(89, 100, 113, 0.3); } QPushButton#browseBtn { background-color: rgba(89, 100, 113, 0.2); border: 1px solid rgba(76, 92, 110, 0.6); padding: 0px 41px; border-radius: 6px; color: #ffffff; font-size: 16px; } QPushButton#browseBtn:hover { background-color: rgba(89, 100, 113, 0.4); border-color: rgba(76, 92, 110, 0.8); } QLabel#errorLabel { color: #ff6b6b; font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 11px; font-weight: 300; background: transparent; } /* Custom Bottom Bar Styles */ #buttonArea { background-color: transparent; } QPushButton#secondaryBtn { background-color: rgba(84, 89, 98, 0.4); border: 1px solid #545962; border-radius: 2px; color: #ebebeb; font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 14px; font-weight: 500; letter-spacing: 0.7px; min-width: 95px; min-height: 36px; max-width: 95px; max-height: 36px; } QPushButton#secondaryBtn:hover { background-color: rgba(84, 89, 98, 0.6); border-color: #6a7080; } QPushButton#secondaryBtn:pressed { background-color: rgba(84, 89, 98, 0.8); } QPushButton#primaryBtn { background-color: #2b57c5; border: none; border-radius: 2px; color: #ebebeb; font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 14px; font-weight: 500; letter-spacing: 0.7px; min-width: 95px; min-height: 36px; max-width: 95px; max-height: 36px; } QPushButton#primaryBtn:hover { background-color: #3d67d5; } QPushButton#primaryBtn:pressed { background-color: #1e47a5; } QPushButton#primaryBtn:disabled { background-color: rgba(43, 87, 197, 0.4); color: rgba(235, 235, 235, 0.5); } /* ---------- Import Project Dialog ---------- */ #importGroup { background-color: #19191b; border: 1px solid rgba(66, 67, 71, 0.3); border-radius: 4px; color: #ffffff; font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 14px; font-weight: 500; letter-spacing: 0.7px; padding: 10px; } #importGroup::title { color: #ffffff; font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 14px; font-weight: 500; letter-spacing: 0.7px; background-color: rgba(66, 67, 71, 0.2); padding: 8px 15px; margin: 0px; border-bottom: 1px solid rgba(66, 67, 71, 0.3); } #uploadArea { background-color: rgba(89, 100, 113, 0.1); border: 1px solid rgba(76, 92, 110, 0.6); border-radius: 4px; min-height: 288px; } #uploadArea[dragOver="true"] { background-color: rgba(43, 86, 197, 0.1); border-color: #2b56c5; } QPushButton#uploadBtn { background-color: #2b57c5; border: none; border-radius: 6px; color: #ffffff; font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 16px; font-weight: 400; letter-spacing: 0.8px; min-width: 151px; min-height: 42px; max-width: 151px; max-height: 42px; } QPushButton#uploadBtn:hover { background-color: #3d67d5; } QPushButton#uploadBtn:pressed { background-color: #1e47a5; } QPushButton#selectBtn { background-color: rgba(84, 89, 98, 0.4); border: 1px solid rgba(84, 89, 98, 0.6); border-radius: 4px; color: #ffffff; font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 14px; font-weight: 400; letter-spacing: 0.7px; padding: 8px 16px; } QPushButton#selectBtn:hover { background-color: rgba(84, 89, 98, 0.6); border-color: rgba(84, 89, 98, 0.8); } #fileList { background-color: rgba(89, 100, 113, 0.2); border: 1px solid rgba(76, 92, 110, 0.6); border-radius: 4px; color: #ffffff; font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 12px; font-weight: 300; letter-spacing: 0.6px; padding: 6px; } #fileList::item { background-color: rgba(84, 89, 98, 0.2); border-radius: 4px; color: rgba(255, 255, 255, 0.9); padding: 6px 8px; margin: 1px 0px; min-height: 26px; font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 12px; font-weight: 300; letter-spacing: 0.6px; } #fileList::item:hover { background-color: rgba(84, 89, 98, 0.3); } #fileList::item:selected { background-color: rgba(43, 86, 197, 0.3); border: 1px solid #2b56c5; } #fileList::item:selected:hover { background-color: rgba(43, 86, 197, 0.4); } #optionsGroup { background-color: transparent; } QDialog#ImportProjectDialog QCheckBox { background: transparent; background-color: transparent; background: transparent; background-color: transparent; background: transparent; background-color: transparent; font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 12px; font-weight: 300; letter-spacing: 0.6px; spacing: 8px; } QDialog#ImportProjectDialog QCheckBox::indicator { width: 18px; height: 18px; border-radius: 2px; } QDialog#ImportProjectDialog QCheckBox::indicator:unchecked { background-color: rgba(217, 217, 217, 0.1); border: 1px solid rgba(77, 116, 189, 0.4); } QDialog#ImportProjectDialog QCheckBox::indicator:unchecked:hover { background-color: rgba(217, 217, 217, 0.15); border: 1px solid rgba(77, 116, 189, 0.6); } QDialog#ImportProjectDialog QCheckBox::indicator:checked { background-color: rgba(40, 126, 255, 0.6); border: 1px solid #289eff; } QDialog#ImportProjectDialog QCheckBox::indicator:checked:hover { background-color: rgba(40, 126, 255, 0.8); } /* Specific styling for the checked checkbox with checkmark */ QDialog#ImportProjectDialog QCheckBox::indicator:checked { background-color: rgba(40, 126, 255, 0.6); border: 1px solid #289eff; image: none; } /* Import dialog specific button styles */ QDialog#ImportProjectDialog QPushButton#primaryBtn:disabled { background-color: rgba(89, 100, 113, 0.2); color: rgba(235, 235, 235, 0.5); border: none; } QDialog#ImportProjectDialog QPushButton#secondaryBtn:hover { background-color: rgba(84, 89, 98, 0.6); border-color: #6a7080; } QDialog#ImportProjectDialog QPushButton#secondaryBtn:pressed { background-color: rgba(84, 89, 98, 0.8); } QDialog#ImportProjectDialog QPushButton#primaryBtn:hover { background-color: #3d67d5; } QDialog#ImportProjectDialog QPushButton#primaryBtn:pressed { background-color: #1e47a5; } /* Enhanced upload area feedback */ #uploadArea { background-color: rgba(89, 100, 113, 0.1); border: 1px solid rgba(76, 92, 110, 0.6); border-radius: 4px; min-height: 288px; transition: all 0.2s ease; } #uploadArea[dragOver="true"] { background-color: rgba(43, 86, 197, 0.15); border: 2px solid #2b56c5; border-style: dashed; } /* ---------- Import Project Dialog Overrides ---------- */ QDialog#ImportProjectDialog { background-color: #0c0c0d; border-radius: 5px; } QDialog#ImportProjectDialog QWidget#importContentArea { background-color: #0c0c0d; border-radius: 5px; } QDialog#CreateProjectDialog #customTitleBar { background-color: #0c0c0d; border-bottom: none; border-top-left-radius: 5px; border-top-right-radius: 5px; min-height: 54px; } QDialog#CreateProjectDialog #customTitleLabel { color: #f4f5f8; font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 16px; font-weight: 600; letter-spacing: 0.6px; background: transparent; } QDialog#CreateProjectDialog #customCloseBtn { background-color: transparent; border-radius: 4px; color: #f4f5f8; font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 14px; font-weight: 500; min-width: 18px; min-height: 18px; } QDialog#CreateProjectDialog #customCloseBtn:hover { background-color: rgba(235, 235, 235, 0.08); border-color: rgba(235, 235, 235, 0.7); } QDialog#CreateProjectDialog #customCloseBtn:pressed { background-color: rgba(235, 235, 235, 0.18); border-color: #ffffff; } QDialog#ImportProjectDialog #customTitleBar { background-color: #0c0c0d; border-bottom: none; border-top-left-radius: 5px; border-top-right-radius: 5px; min-height: 54px; } QDialog#ImportProjectDialog #customTitleIcon { qproperty-alignment: 'AlignVCenter | AlignLeft'; } QDialog#ImportProjectDialog #customTitleLabel { color: #f4f5f8; font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 16px; font-weight: 600; letter-spacing: 0.6px; background: transparent; } QDialog#ImportProjectDialog #customCloseBtn { background-color: transparent; border-radius: 4px; color: #f4f5f8; font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 14px; font-weight: 500; min-width: 18px; min-height: 18px; } QDialog#ImportProjectDialog #customCloseBtn:hover { background-color: rgba(235, 235, 235, 0.08); border-color: rgba(235, 235, 235, 0.7); } QDialog#ImportProjectDialog #customCloseBtn:pressed { background-color: rgba(235, 235, 235, 0.18); border-color: #ffffff; } QDialog#ImportProjectDialog QFrame#importSectionFrame { background-color: #0c0c0d; border: none; border-radius: 5px; } QDialog#ImportProjectDialog QFrame#importSectionHeader { background-color: #19191B; border: none; min-width: 1157px; max-width: 1157px; min-height: 33px; max-height: 33px; } QDialog#ImportProjectDialog QLabel#importSectionTitle { color: #f4f5f8; font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.6px; background: transparent; } QDialog#ImportProjectDialog QFrame#importSectionBody { background-color: #19191B; min-width: 1157px; max-width: 1157px; min-height: 450px; max-height: 450px; } QDialog#ImportProjectDialog #importGroup { background-color: #16181d; border: 1px solid rgba(73, 76, 84, 0.55); border-radius: 6px; color: #f4f5f8; font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 14px; font-weight: 500; letter-spacing: 0.6px; padding: 12px; } QDialog#ImportProjectDialog #importGroup::title { background-color: rgba(48, 51, 58, 0.45); border-bottom: 1px solid rgba(73, 76, 84, 0.45); margin: -8px -8px 12px -8px; padding: 12px 18px; } QDialog#ImportProjectDialog #uploadArea { background: transparent; } QDialog#ImportProjectDialog #uploadContentFrame { background-color: rgba(89, 100, 113, 0.1); border-radius: 4px; min-width: 1127px; max-width: 1127px; min-height: 288px; max-height: 288px; border: none; transition: background-color 0.2s ease, border 0.2s ease; } QDialog#ImportProjectDialog #uploadArea[dragOver="true"] #uploadContentFrame { background-color: rgba(43, 86, 197, 0.12); border: 2px dashed #2b56c5; } QDialog#ImportProjectDialog QLabel#uploadIcon { qproperty-alignment: 'AlignCenter'; background: transparent; } QDialog#ImportProjectDialog QLabel#uploadTitle { color: #dfe2ea; font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 14px; font-weight: 400; letter-spacing: 0.4px; background: transparent; } QDialog#ImportProjectDialog QLabel#uploadHint, QDialog#ImportProjectDialog QLabel#uploadHintLabel { color: rgba(255, 255, 255, 0.9); font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 12px; font-weight: 300; letter-spacing: 0.3px; background: transparent; margin: 0px; padding: 4px 0px; } QDialog#ImportProjectDialog QPushButton#uploadBtn { background-color: #2b57c5; border: none; border-radius: 6px; color: #ffffff; font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 16px; font-weight: 400; letter-spacing: 0.8px; min-width: 151px; max-width: 151px; min-height: 42px; max-height: 42px; } QDialog#ImportProjectDialog QPushButton#uploadBtn:hover { background-color: #3d67d5; } QDialog#ImportProjectDialog QPushButton#uploadBtn:pressed { background-color: #1e47a5; } QDialog#ImportProjectDialog #fileList { background-color: rgba(89, 100, 113, 0.2); border: none; border-radius: 4px; padding: 8px; } QDialog#ImportProjectDialog #fileList:focus { border-color: rgba(76, 104, 196, 0.6); } QDialog#ImportProjectDialog #fileList QWidget#fileListItem { background-color: transparent; border: none; border-radius: 0; } QDialog#ImportProjectDialog #fileList QWidget#fileListItem:hover { background-color: transparent; border: none; } QDialog#ImportProjectDialog #fileList QLabel#fileListItemIcon { background: transparent; } QDialog#ImportProjectDialog QLabel#fileListItemTitle { background-color: transparent; color: #f3f4f8; font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 12x; font-weight: 500; letter-spacing: 0.3px; } QDialog#ImportProjectDialog QLabel#fileListItemMeta { color: rgba(223, 226, 234, 0.65); font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 12px; letter-spacing: 0.2px; } QDialog#ImportProjectDialog QWidget#optionsGroup { background-color: transparent; border: none; border-radius: 0; } QDialog#ImportProjectDialog QCheckBox { background: transparent; background-color: transparent; color: rgba(239, 240, 244, 0.88); font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 13px; font-weight: 400; letter-spacing: 0.4px; spacing: 8px; } QDialog#ImportProjectDialog QCheckBox::indicator { width: 18px; height: 18px; border-radius: 3px; } QDialog#ImportProjectDialog QCheckBox::indicator:unchecked { background-color: rgba(217, 217, 217, 0.08); border: 1px solid rgba(77, 116, 189, 0.4); } QDialog#ImportProjectDialog QCheckBox::indicator:unchecked:hover { background-color: rgba(217, 217, 217, 0.14); border: 1px solid rgba(77, 116, 189, 0.6); } QDialog#ImportProjectDialog QCheckBox::indicator:checked { background-color: rgba(40, 126, 255, 0.7); border: 1px solid #289eff; image: none; } QDialog#ImportProjectDialog QCheckBox::indicator:checked:hover { background-color: rgba(40, 126, 255, 0.85); } QDialog#ImportProjectDialog #buttonArea { background-color: #0c0c0d; border-top: 1px solid rgba(58, 63, 76, 0.7); margin: 0 10px; /* 上下0px,左右20px */ min-height: 36px; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px; } QDialog#ImportProjectDialog QPushButton#secondaryBtn { background-color: rgba(84, 89, 98, 0.35); border: 1px solid rgba(104, 110, 122, 0.65); border-radius: 4px; color: #ebebeb; font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 14px; padding: 0px 0px; min-height: 36px; max-height: 36px; max-width: 95px; min-width: 95px; } QDialog#ImportProjectDialog QPushButton#secondaryBtn:hover { background-color: rgba(84, 89, 98, 0.55); border-color: rgba(136, 144, 160, 0.7); } QDialog#ImportProjectDialog QPushButton#secondaryBtn:pressed { background-color: rgba(84, 89, 98, 0.75); } QDialog#ImportProjectDialog QPushButton#primaryBtn { background-color: #2b57c5; border: none; border-radius: 4px; color: #ebebeb; font-family: "Inter" "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 14px; padding: 0px 0px; min-height: 37px; max-height: 37px; max-width: 125px; min-width: 125px; } QDialog#ImportProjectDialog QPushButton#primaryBtn:hover { background-color: #3d67d5; } QDialog#ImportProjectDialog QPushButton#primaryBtn:pressed { background-color: #1e47a5; } QDialog#ImportProjectDialog QPushButton#primaryBtn:disabled { background-color: rgba(89, 100, 113, 0.25); color: rgba(235, 235, 235, 0.55); } """ @staticmethod def get_card_style(): return """ #projectCard { background-color: #1b1f2a; border: 1px solid #242a38; border-radius: 18px; } #projectCard:hover { background-color: #212634; border-color: #2d3343; } #projectHeader { background: transparent; border-bottom: none; } #projectTitle { color: #f2f4f9; font-size: 15px; font-weight: 600; } #projectImage { background-color: #292f3d; border-radius: 5px; min-height: 140px; } #projectFooter { background: transparent; border-top: 1px solid #232838; margin-top: 12px; padding-top: 12px; } #projectDate { color: #9aa1b3; font-size: 12px; } """ @staticmethod def get_context_menu_style(): return """ QMenu { background-color: #424347; border: 1px solid #5a5a6a; border-radius: 6px; padding: 4px 0px; } QMenu::item { background-color: transparent; border-radius: 4px; padding: 6px 12px; margin: 1px 6px; } QMenu::item:selected { background-color: rgba(255, 255, 255, 0.08); } QMenu::icon { padding-left: 0px; padding-right: 10px; } QMenu::separator { height: 1px; background: rgba(84, 89, 98, 0.8); margin: 4px 0px; margin-left: 0px; margin-right: 0px; } """