/* ==================== DCS2025 规程管理界面样式 - 现代化设计 ==================== */ /* ==================== 全局样式 ==================== */ QWidget { background-color: #F8FAFC; color: #1F2937; font-family: "PingFangSC-Medium", "Microsoft YaHei", "Segoe UI", Arial, sans-serif; font-size: 14px; selection-background-color: #3B82F6; selection-color: #FFFFFF; } /* ==================== 主窗口样式 ==================== */ QMainWindow { background-color: #F5F7FA; border: none; } /* ==================== 工具栏样式 ==================== */ QToolBar { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #FFFFFF, stop:1 #F8FAFC); border: none; border-bottom: 1px solid #E5E7EB; spacing: 12px; padding: 16px 24px; font-size: 13px; font-weight: 500; } QToolBar::separator { background-color: #E5E7EB; width: 1px; margin: 8px 6px; } /* ==================== 工具栏按钮样式 - 与变量表按钮一致 ==================== */ /* 工具栏按钮基础样式 */ QToolBar QToolButton { color: #047857; font-size: 15px; font-weight: 600; padding: 8px 16px; background-color: #ECFDF5; border-radius: 6px; border: 1px solid #BBF7D0; margin: 2px; min-width: 80px; min-height: 32px; font-family: "PingFangSC-Medium", "Microsoft YaHei", sans-serif; } QToolBar QToolButton:hover { background-color: #D1FAE5; border-color: #86EFAC; color: #065F46; } QToolBar QToolButton:pressed { background-color: #A7F3D0; border-color: #6EE7B7; color: #064E3B; } QToolBar QToolButton:disabled { background-color: #F9FAFB; color: #9CA3AF; border-color: #E5E7EB; } /* ==================== 标签页样式 ==================== */ QTabWidget::pane { border: 1px solid #E5E7EB; border-radius: 12px; background-color: #FFFFFF; margin-top: -1px; } QTabWidget::tab-bar { alignment: left; } QTabBar::tab { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #F9FAFB, stop:1 #F3F4F6); border: 1px solid #E5E7EB; border-bottom: none; border-top-left-radius: 12px; border-top-right-radius: 12px; padding: 16px 24px; margin-right: 4px; color: #6B7280; font-size: 14px; font-weight: 500; min-width: 140px; } QTabBar::tab:selected { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #FFFFFF, stop:1 #F8FAFC); color: #1976D2; border-color: #E5E7EB; font-weight: 600; } QTabBar::tab:hover:!selected { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #FFFFFF, stop:1 #F9FAFB); color: #374151; } /* 关闭按钮 */ QTabBar::close-button { image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEyIDRMNCA4TDEyIDEyIiBzdHJva2U9IiM2QjcyODAiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjwvc3ZnPgo=); subcontrol-position: right; subcontrol-origin: padding; border-radius: 4px; margin: 6px; padding: 2px; } QTabBar::close-button:hover { background-color: #FEE2E2; border: 1px solid #FECACA; } /* ==================== 卡片式容器样式 ==================== */ /* 分类列表卡片 */ QWidget#categoryCard { background-color: #FFFFFF; border: 1px solid #E5E7EB; border-radius: 12px; padding: 20px; margin: 8px; } /* 规程列表卡片 */ QWidget#procedureCard { background-color: #FFFFFF; border: 1px solid #E5E7EB; border-radius: 12px; padding: 20px; margin: 8px; } /* 卡片标题 */ QLabel#cardTitle { font-size: 16px; font-weight: 600; color: #1F2937; padding: 0 0 12px 0; border-bottom: 2px solid #E5E7EB; margin-bottom: 16px; } /* ==================== 列表控件样式 ==================== */ /* 分类列表 */ QListWidget#categoryList { background-color: #FFFFFF; border: 1px solid #E5E7EB; border-radius: 8px; padding: 8px; outline: none; font-size: 14px; } QListWidget#categoryList::item { background-color: transparent; border: none; border-radius: 6px; padding: 12px 16px; margin: 2px 0; color: #374151; font-weight: 500; } QListWidget#categoryList::item:hover { background-color: #F3F4F6; color: #1F2937; } QListWidget#categoryList::item:selected { background: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #3B82F6, stop:1 #2563EB); color: #FFFFFF; font-weight: 600; } /* 规程列表 */ QListWidget#procedureList { background-color: #FFFFFF; border: 1px solid #E5E7EB; border-radius: 8px; padding: 8px; outline: none; font-size: 14px; } QListWidget#procedureList::item { background-color: transparent; border: none; border-radius: 6px; padding: 16px 20px; margin: 3px 0; color: #374151; font-weight: 500; min-height: 20px; } QListWidget#procedureList::item:hover { background-color: #F8FAFC; border: 1px solid #E5E7EB; color: #1F2937; } QListWidget#procedureList::item:selected { background: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #EBF8FF, stop:1 #DBEAFE); border: 1px solid #93C5FD; color: #1E40AF; font-weight: 600; } /* ==================== 按钮样式 ==================== */ /* 基础按钮样式 */ QPushButton { background-color: #FFFFFF; border: 1px solid #E5E7EB; border-radius: 8px; padding: 12px 20px; font-weight: 500; color: #374151; font-size: 14px; min-width: 100px; min-height: 36px; } QPushButton:hover { background-color: #F9FAFB; border-color: #D1D5DB; color: #1F2937; } QPushButton:pressed { background-color: #F3F4F6; border-color: #9CA3AF; color: #111827; } QPushButton:disabled { background-color: #F9FAFB; color: #9CA3AF; border-color: #E5E7EB; } /* 主要操作按钮 - 蓝色 */ QPushButton#primaryBtn { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #3B82F6, stop:1 #2563EB); border: 1px solid #2563EB; color: #FFFFFF; font-weight: 600; } QPushButton#primaryBtn:hover { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #2563EB, stop:1 #1D4ED8); border-color: #1D4ED8; } QPushButton#primaryBtn:pressed { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #1D4ED8, stop:1 #1E40AF); border-color: #1E40AF; } /* 成功操作按钮 - 绿色 */ QPushButton#successBtn { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #10B981, stop:1 #059669); border: 1px solid #059669; color: #FFFFFF; font-weight: 600; } QPushButton#successBtn:hover { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #059669, stop:1 #047857); border-color: #047857; } QPushButton#successBtn:pressed { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #047857, stop:1 #065F46); border-color: #065F46; } /* 警告操作按钮 - 橙色 */ QPushButton#warningBtn { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #F59E0B, stop:1 #D97706); border: 1px solid #D97706; color: #FFFFFF; font-weight: 600; } QPushButton#warningBtn:hover { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #D97706, stop:1 #B45309); border-color: #B45309; } QPushButton#warningBtn:pressed { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #B45309, stop:1 #92400E); border-color: #92400E; } /* 危险操作按钮 - 红色 */ QPushButton#dangerBtn { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #EF4444, stop:1 #DC2626); border: 1px solid #DC2626; color: #FFFFFF; font-weight: 600; } QPushButton#dangerBtn:hover { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #DC2626, stop:1 #B91C1C); border-color: #B91C1C; } QPushButton#dangerBtn:pressed { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #B91C1C, stop:1 #991B1B); border-color: #991B1B; } /* ==================== 表格样式 ==================== */ QTableWidget { background-color: #FFFFFF; alternate-background-color: #F8FAFC; gridline-color: #E5E7EB; border: 1px solid #E5E7EB; border-radius: 8px; selection-background-color: #EBF8FF; selection-color: #1E40AF; outline: none; font-size: 13px; } QTableWidget::item { padding: 12px 16px; border: none; background-color: transparent; } QTableWidget::item:selected { background-color: #EBF8FF; color: #1E40AF; } QTableWidget::item:hover { background-color: #F8FAFC; } /* 表头样式 */ QHeaderView::section { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #F9FAFB, stop:1 #F3F4F6); color: #374151; padding: 16px 12px; border: none; border-right: 1px solid #E5E7EB; border-bottom: 2px solid #E5E7EB; font-weight: 600; font-size: 13px; text-align: center; } QHeaderView::section:first { border-top-left-radius: 8px; } QHeaderView::section:last { border-top-right-radius: 8px; border-right: none; } QHeaderView::section:hover { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #F3F4F6, stop:1 #E5E7EB); } /* ==================== 输入控件样式 ==================== */ QLineEdit { background-color: #FFFFFF; border: 2px solid #E5E7EB; border-radius: 8px; padding: 4px 8px; color: #374151; font-size: 14px; font-weight: 400; } QLineEdit:focus { border-color: #3B82F6; background-color: #FEFEFF; outline: none; } QLineEdit:hover { border-color: #9CA3AF; } /* 规程编辑器中的小型输入框 */ QLineEdit#procedureNameEdit, QLineEdit#procedureNumberEdit, QLineEdit#procedureTypeEdit, QLineEdit#procedureDescriptionEdit { padding: 4px 8px; font-size: 12px; font-family: "Microsoft YaHei", "PingFangSC-Regular", sans-serif; border: 1px solid #E5E7EB; border-radius: 4px; min-height: 22px; line-height: 1.3; color: #374151; } QLineEdit#procedureNameEdit:focus, QLineEdit#procedureNumberEdit:focus, QLineEdit#procedureTypeEdit:focus, QLineEdit#procedureDescriptionEdit:focus { border-color: #3B82F6; background-color: #FEFEFF; } QTextEdit { background-color: #FFFFFF; border: 2px solid #E5E7EB; border-radius: 8px; /* padding: 16px; */ color: #374151; font-size: 14px; line-height: 1.5; } QTextEdit:focus { border-color: #3B82F6; background-color: #FEFEFF; outline: none; } /* ==================== 组合框样式 ==================== */ QComboBox { background-color: #FFFFFF; border: 2px solid #E5E7EB; border-radius: 8px; padding: 12px 16px; color: #374151; font-size: 14px; min-width: 120px; } QComboBox:focus { border-color: #3B82F6; background-color: #FEFEFF; } QComboBox::drop-down { border: none; width: 32px; } QComboBox::down-arrow { image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTQgNkw4IDEwTDEyIDYiIHN0cm9rZT0iIzM3NDE1MSIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9zdmc+); width: 16px; height: 16px; } QComboBox QAbstractItemView { background-color: #FFFFFF; border: 1px solid #E5E7EB; border-radius: 8px; color: #374151; selection-background-color: #EBF8FF; selection-color: #1E40AF; padding: 4px; } QComboBox QAbstractItemView::item { height: 36px; padding: 8px 16px; border: none; border-radius: 6px; } QComboBox QAbstractItemView::item:hover { background-color: #F8FAFC; } QComboBox QAbstractItemView::item:selected { background-color: #EBF8FF; color: #1E40AF; } /* ==================== 复选框样式 ==================== */ QCheckBox { color: #374151; spacing: 12px; font-size: 14px; } QCheckBox::indicator { width: 20px; height: 20px; border: 2px solid #E5E7EB; border-radius: 4px; background-color: #FFFFFF; } QCheckBox::indicator:hover { border-color: #3B82F6; background-color: #F8FAFC; } QCheckBox::indicator:checked { background-color: #3B82F6; border-color: #2563EB; image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEzIDRMNiAxMUwzIDgiIHN0cm9rZT0iI0ZGRkZGRiIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9zdmc+); } QCheckBox::indicator:checked:hover { background-color: #2563EB; } /* ==================== 进度条样式 ==================== */ QProgressBar { background-color: #F3F4F6; border: 1px solid #E5E7EB; border-radius: 8px; text-align: center; color: #374151; font-weight: 600; font-size: 13px; height: 24px; } QProgressBar::chunk { background: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #3B82F6, stop:1 #2563EB); border-radius: 7px; margin: 1px; } /* ==================== 滚动条样式 ==================== */ QScrollBar:vertical { background-color: #F9FAFB; width: 12px; border-radius: 6px; margin: 0px; } QScrollBar::handle:vertical { background: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #E5E7EB, stop:1 #D1D5DB); border-radius: 6px; min-height: 30px; } QScrollBar::handle:vertical:hover { background: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #3B82F6, stop:1 #2563EB); } QScrollBar::handle:vertical:pressed { background: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #2563EB, stop:1 #1D4ED8); } QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical { height: 0px; background: none; } QScrollBar:horizontal { background-color: #F9FAFB; height: 12px; border-radius: 6px; margin: 0px; } QScrollBar::handle:horizontal { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #E5E7EB, stop:1 #D1D5DB); border-radius: 6px; min-width: 30px; } QScrollBar::handle:horizontal:hover { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #3B82F6, stop:1 #2563EB); } QScrollBar::handle:horizontal:pressed { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #2563EB, stop:1 #1D4ED8); } QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal { width: 0px; background: none; } /* ==================== 菜单样式 ==================== */ QMenu { background-color: #FFFFFF; border: 1px solid #E5E7EB; border-radius: 8px; padding: 8px; color: #374151; } QMenu::item { background-color: transparent; padding: 12px 16px; border-radius: 6px; margin: 2px; font-size: 14px; } QMenu::item:selected { background-color: #EBF8FF; color: #1E40AF; } QMenu::item:disabled { color: #9CA3AF; } QMenu::separator { height: 1px; background-color: #E5E7EB; margin: 8px 12px; } /* ==================== 状态栏样式 ==================== */ QStatusBar { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #F9FAFB, stop:1 #F3F4F6); border-top: 1px solid #E5E7EB; color: #6B7280; padding: 8px 16px; font-size: 13px; } QStatusBar::item { border: none; } /* ==================== 对话框样式 ==================== */ QDialog { background-color: #FFFFFF; border: 1px solid #E5E7EB; border-radius: 12px; } QDialogButtonBox QPushButton { min-width: 100px; padding: 12px 24px; } /* ==================== 消息框样式 ==================== */ QMessageBox { background-color: #FFFFFF; color: #374151; border-radius: 12px; } QMessageBox QLabel { color: #374151; font-size: 14px; } QMessageBox QPushButton { min-width: 80px; padding: 10px 20px; } /* ==================== 工具提示样式 ==================== */ QToolTip { background-color: #1F2937; color: #F9FAFB; border: 1px solid #374151; border-radius: 6px; padding: 8px 12px; font-size: 13px; opacity: 240; } /* ==================== 分割器样式 ==================== */ QSplitter::handle { background-color: #E5E7EB; } QSplitter::handle:horizontal { width: 2px; border-radius: 1px; } QSplitter::handle:vertical { height: 2px; border-radius: 1px; } QSplitter::handle:hover { background-color: #3B82F6; } /* ==================== 特殊状态样式 ==================== */ /* 成功状态 */ .status-success { color: #059669; font-weight: 600; } /* 错误状态 */ .status-error { color: #DC2626; font-weight: 600; } /* 警告状态 */ .status-warning { color: #D97706; font-weight: 600; } /* 信息状态 */ .status-info { color: #2563EB; font-weight: 600; } /* ==================== 规程执行界面特殊样式 ==================== */ /* 规程信息卡片 */ QWidget#procedureInfoCard { background-color: #FFFFFF; border: 1px solid #E5E7EB; border-radius: 12px; padding: 24px; margin: 12px; } /* 信息组标题 */ QLabel#infoGroupTitle { font-size: 14px; font-weight: 600; color: #6B7280; margin-bottom: 8px; } /* 信息组值 */ QLabel#infoGroupValue { font-size: 16px; font-weight: 600; color: #1F2937; padding: 12px 16px; background-color: #F8FAFC; border: 1px solid #E5E7EB; border-radius: 8px; min-height: 20px; } /* 步骤表格特殊样式 */ QTableWidget#stepsTable { background-color: #FFFFFF; border: 1px solid #E5E7EB; border-radius: 8px; gridline-color: #F3F4F6; } QTableWidget#stepsTable::item { padding: 16px 12px; border: none; background-color: transparent; font-size: 13px; } QTableWidget#stepsTable::item:selected { background-color: #EBF8FF; color: #1E40AF; } QTableWidget#stepsTable::item:hover { background-color: #F8FAFC; } /* 主步骤样式 */ QTableWidget#stepsTable::item[main_step="true"] { background-color: #F0F9FF; font-weight: 600; color: #0C4A6E; } /* 子步骤样式 */ QTableWidget#stepsTable::item[sub_step="true"] { background-color: #FEFEFE; color: #374151; } /* 执行成功的步骤 */ QTableWidget#stepsTable::item[success="true"] { background-color: rgba(16, 185, 129, 0.1); color: #059669; } /* 执行失败的步骤 */ QTableWidget#stepsTable::item[success="false"] { background-color: rgba(239, 68, 68, 0.1); color: #DC2626; } /* ===== =============== 规程执行界面特殊样式 ==================== */ /* 规程信息网格布局 */ QWidget#procedureInfoGrid { background-color: #FFFFFF; border: 1px solid #E5E7EB; border-radius: 12px; padding: 24px; margin: 12px; } /* 信息项容器 */ QWidget#infoItem { background-color: #F8FAFC; border: 1px solid #E5E7EB; border-radius: 8px; padding: 16px; margin: 8px; } /* 信息项标题 */ QLabel#infoItemTitle { font-size: 12px; font-weight: 600; color: #6B7280; margin-bottom: 8px; text-transform: uppercase; letter-spacing: 0.5px; } /* 信息项值 */ QLabel#infoItemValue { font-size: 16px; font-weight: 600; color: #1F2937; padding: 8px 0; word-wrap: break-word; } /* 执行控制面板 */ QWidget#executionControlPanel { background-color: #FFFFFF; border: 1px solid #E5E7EB; border-radius: 12px; padding: 20px; margin: 12px; } /* 状态指示器 */ QLabel#executionStatus { font-size: 14px; font-weight: 600; padding: 8px 16px; border-radius: 20px; text-align: center; } /* 状态指示器 - 就绪 */ QLabel#executionStatus[status="ready"] { background-color: #F3F4F6; color: #374151; border: 1px solid #D1D5DB; } /* 状态指示器 - 运行中 */ QLabel#executionStatus[status="running"] { background-color: #ECFDF5; color: #166534; border: 1px solid #BBF7D0; } /* 状态指示器 - 暂停 */ QLabel#executionStatus[status="paused"] { background-color: #FEF3C7; color: #92400E; border: 1px solid #FCD34D; } /* 状态指示器 - 完成 */ QLabel#executionStatus[status="completed"] { background-color: #EBF8FF; color: #1E40AF; border: 1px solid #BFDBFE; } /* 状态指示器 - 错误 */ QLabel#executionStatus[status="error"] { background-color: #FEF2F2; color: #991B1B; border: 1px solid #FECACA; } /* 进度指示器 */ QWidget#progressIndicator { background-color: #F8FAFC; border: 1px solid #E5E7EB; border-radius: 8px; padding: 16px; margin: 8px 0; } /* 进度标签 */ QLabel#progressLabel { font-size: 14px; font-weight: 500; color: #374151; margin-bottom: 8px; } /* 自定义进度条 */ QProgressBar#executionProgress { background-color: #F3F4F6; border: 1px solid #E5E7EB; border-radius: 10px; text-align: center; color: #374151; font-weight: 600; font-size: 12px; height: 20px; } QProgressBar#executionProgress::chunk { background: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #10B981, stop:1 #059669); border-radius: 9px; margin: 1px; } /* 时间显示 */ QLabel#timeDisplay { font-size: 18px; font-weight: 700; color: #1F2937; font-family: "Consolas", "Monaco", monospace; background-color: #F8FAFC; border: 1px solid #E5E7EB; border-radius: 8px; padding: 12px 16px; text-align: center; } /* 时间显示 - 警告状态 */ QLabel#timeDisplay[warning="true"] { color: #D97706; background-color: #FEF3C7; border-color: #FCD34D; } /* 时间显示 - 危险状态 */ QLabel#timeDisplay[danger="true"] { color: #DC2626; background-color: #FEF2F2; border-color: #FECACA; } /* 步骤详情面板 */ QWidget#stepDetailPanel { background-color: #FFFFFF; border: 1px solid #E5E7EB; border-radius: 12px; padding: 20px; margin: 12px; } /* 步骤详情标题 */ QLabel#stepDetailTitle { font-size: 16px; font-weight: 600; color: #1F2937; margin-bottom: 16px; padding-bottom: 8px; border-bottom: 2px solid #E5E7EB; } /* 步骤描述 */ QLabel#stepDescription { font-size: 14px; color: #374151; line-height: 1.6; padding: 12px 16px; background-color: #F8FAFC; border: 1px solid #E5E7EB; border-radius: 8px; word-wrap: break-word; } /* 执行日志 */ QTextEdit#executionLog { background-color: #1F2937; color: #F9FAFB; border: 1px solid #374151; border-radius: 8px; font-family: "Consolas", "Monaco", "Courier New", monospace; font-size: 12px; padding: 12px; line-height: 1.4; } /* 日志滚动条 */ QTextEdit#executionLog QScrollBar:vertical { background-color: #374151; width: 12px; border-radius: 6px; } QTextEdit#executionLog QScrollBar::handle:vertical { background-color: #6B7280; border-radius: 6px; min-height: 30px; } QTextEdit#executionLog QScrollBar::handle:vertical:hover { background-color: #9CA3AF; } /* 操作历史表格 */ QTableWidget#operationHistory { background-color: #FFFFFF; alternate-background-color: #F8FAFC; gridline-color: #F3F4F6; border: 1px solid #E5E7EB; border-radius: 8px; selection-background-color: #EBF8FF; selection-color: #1E40AF; outline: none; font-size: 13px; } QTableWidget#operationHistory::item { padding: 12px 16px; border: none; background-color: transparent; } QTableWidget#operationHistory::item:selected { background-color: #EBF8FF; color: #1E40AF; } QTableWidget#operationHistory::item:hover { background-color: #F8FAFC; } /* 操作历史表头 */ QTableWidget#operationHistory QHeaderView::section { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #F9FAFB, stop:1 #F3F4F6); color: #374151; padding: 16px 12px; border: none; border-right: 1px solid #E5E7EB; border-bottom: 2px solid #E5E7EB; font-weight: 600; font-size: 13px; text-align: center; } /* 快捷操作面板 */ QWidget#quickActionPanel { background-color: #F8FAFC; border: 1px solid #E5E7EB; border-radius: 8px; padding: 16px; margin: 8px 0; } /* 快捷操作标题 */ QLabel#quickActionTitle { font-size: 14px; font-weight: 600; color: #374151; margin-bottom: 12px; } /* 快捷操作按钮组 */ QWidget#quickActionButtons { background-color: transparent; } /* 小型按钮样式 */ QPushButton#smallBtn { padding: 8px 12px; font-size: 12px; min-width: 60px; min-height: 28px; border-radius: 6px; } /* 图标按钮样式 */ QPushButton#iconBtn { padding: 10px; min-width: 40px; min-height: 40px; border-radius: 8px; font-size: 16px; } QPushButton#iconBtn:hover { transform: scale(1.05); } /* 浮动操作按钮 */ QPushButton#fabBtn { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #3B82F6, stop:1 #2563EB); border: none; border-radius: 28px; color: #FFFFFF; font-size: 18px; font-weight: 600; min-width: 56px; min-height: 56px; padding: 0; } QPushButton#fabBtn:hover { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #2563EB, stop:1 #1D4ED8); } QPushButton#fabBtn:pressed { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #1D4ED8, stop:1 #1E40AF); } /* 通知横幅 */ QWidget#notificationBanner { background-color: #EBF8FF; border: 1px solid #93C5FD; border-radius: 8px; padding: 12px 16px; margin: 8px 0; } /* 通知横幅 - 成功 */ QWidget#notificationBanner[type="success"] { background-color: #ECFDF5; border-color: #BBF7D0; } /* 通知横幅 - 警告 */ QWidget#notificationBanner[type="warning"] { background-color: #FEF3C7; border-color: #FCD34D; } /* 通知横幅 - 错误 */ QWidget#notificationBanner[type="error"] { background-color: #FEF2F2; border-color: #FECACA; } /* 通知文本 */ QLabel#notificationText { font-size: 14px; font-weight: 500; color: #374151; } /* 通知文本 - 成功 */ QLabel#notificationText[type="success"] { color: #166534; } /* 通知文本 - 警告 */ QLabel#notificationText[type="warning"] { color: #92400E; } /* 通知文本 - 错误 */ QLabel#notificationText[type="error"] { color: #991B1B; } /* 数据统计卡片 */ QWidget#statsCard { background-color: #FFFFFF; border: 1px solid #E5E7EB; border-radius: 12px; padding: 20px; margin: 8px; min-width: 200px; } /* 统计数值 */ QLabel#statsValue { font-size: 32px; font-weight: 700; color: #1F2937; text-align: center; } /* 统计标签 */ QLabel#statsLabel { font-size: 14px; font-weight: 500; color: #6B7280; text-align: center; margin-top: 8px; } /* 统计变化指示器 */ QLabel#statsChange { font-size: 12px; font-weight: 600; padding: 4px 8px; border-radius: 12px; text-align: center; margin-top: 8px; } /* 统计变化 - 上升 */ QLabel#statsChange[trend="up"] { background-color: #ECFDF5; color: #166534; } /* 统计变化 - 下降 */ QLabel#statsChange[trend="down"] { background-color: #FEF2F2; color: #991B1B; } /* 统计变化 - 持平 */ QLabel#statsChange[trend="stable"] { background-color: #F3F4F6; color: #6B7280; } /* ==================== 规程编辑器专用样式 ==================== */ /* 基本信息标题 */ QLabel#basicInfoTitle { font-size: 12px; font-weight: bold; color: #606266; } /* 步骤列表标题 */ QLabel#stepsTitle { font-size: 12px; font-weight: bold; color: #606266; } /* 字段标签样式 */ QLabel[fieldLabel="true"] { font-size: 11px; font-weight: bold; color: #909399; } /* 添加步骤按钮 */ QPushButton#addStepButton { font-size: 11px; padding: 4px 8px; background-color: #10B981; color: white; border: none; border-radius: 4px; font-weight: 600; } QPushButton#addStepButton:hover { background-color: #059669; } QPushButton#addStepButton:pressed { background-color: #047857; } /* 删除步骤按钮 */ QPushButton#deleteStepButton { font-size: 11px; padding: 4px 8px; background-color: #EF4444; color: white; border: none; border-radius: 4px; font-weight: 600; } QPushButton#deleteStepButton:hover { background-color: #DC2626; } QPushButton#deleteStepButton:pressed { background-color: #B91C1C; } /* 保存规程按钮 */ QPushButton#saveProcedureButton { font-size: 11px; padding: 6px 12px; background-color: #3B82F6; color: white; border: none; border-radius: 4px; font-weight: 600; } QPushButton#saveProcedureButton:hover { background-color: #2563EB; } QPushButton#saveProcedureButton:pressed { background-color: #1D4ED8; } /* 取消编辑按钮 */ QPushButton#cancelEditButton { font-size: 11px; padding: 6px 12px; background-color: #6B7280; color: white; border: none; border-radius: 4px; font-weight: 600; } QPushButton#cancelEditButton:hover { background-color: #4B5563; } QPushButton#cancelEditButton:pressed { background-color: #374151; } /* 规程编辑器步骤表格 */ QTableWidget#stepsTable { gridline-color: #EBEEF5; font-size: 11px; border: 1px solid #DCDFE6; border-radius: 4px; background-color: #FFFFFF; alternate-background-color: #F9FAFC; } QTableWidget#stepsTable::item { padding: 4px; border-bottom: 1px solid #EBEEF5; } QTableWidget#stepsTable::item:selected { background-color: #ECF5FF; color: #409EFF; } QTableWidget#stepsTable QHeaderView::section { background-color: #F5F7FA; color: #606266; padding: 6px; border: none; border-right: 1px solid #EBEEF5; border-bottom: 1px solid #DCDFE6; font-weight: bold; font-size: 11px; } /* ==================== 步骤执行器样式 ==================== */ /* 超紧凑信息标签 */ QLabel#ultraCompactInfoLabel { font-size: 11px; font-weight: bold; color: #606266; } /* 超紧凑信息值 */ QLabel#ultraCompactInfoValue { font-size: 11px; color: #374151; } /* 执行状态标签 */ QLabel#executionStatusLabel { font-weight: bold; } /* 执行状态 - 成功 */ QLabel#executionStatusLabel[status="success"] { color: #059669; } /* 执行状态 - 错误 */ QLabel#executionStatusLabel[status="error"] { color: #DC2626; } /* 执行状态 - 警告 */ QLabel#executionStatusLabel[status="warning"] { color: #D97706; } /* 执行状态 - 信息 */ QLabel#executionStatusLabel[status="info"] { color: #2563EB; } /* ==================== 规程管理界面按钮样式 ==================== */ /* 卡片标题 */ QLabel#cardTitle { font-size: 16px; font-weight: 600; color: #1F2937; padding: 0 0 12px 0; border-bottom: 2px solid #E5E7EB; margin-bottom: 16px; } /* 规程统计标签 */ QLabel#procedureCountLabel { color: #6B7280; font-size: 13px; font-weight: 500; padding: 6px 12px; background-color: #F3F4F6; border-radius: 16px; } /* 搜索框 */ QLineEdit#searchEdit { padding: 8px 12px; font-size: 14px; border-radius: 6px; border: 2px solid #E5E7EB; background-color: #FFFFFF; } QLineEdit#searchEdit:focus { border-color: #3B82F6; background-color: #FEFEFF; } /* 类型过滤器 */ QComboBox#typeFilter { padding: 8px 12px; font-size: 14px; border-radius: 6px; border: 2px solid #E5E7EB; background-color: #FFFFFF; min-width: 120px; } QComboBox#typeFilter:focus { border-color: #3B82F6; } /* 添加分类按钮 */ QPushButton#addCategoryBtn { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #3B82F6, stop:1 #2563EB); border: 1px solid #2563EB; color: #FFFFFF; font-size: 13px; font-weight: 600; padding: 8px 16px; border-radius: 6px; min-height: 32px; } QPushButton#addCategoryBtn:hover { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #2563EB, stop:1 #1D4ED8); border-color: #1D4ED8; } QPushButton#addCategoryBtn:pressed { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #1D4ED8, stop:1 #1E40AF); border-color: #1E40AF; } /* 删除分类按钮 */ QPushButton#deleteCategoryBtn { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #EF4444, stop:1 #DC2626); border: 1px solid #DC2626; color: #FFFFFF; font-size: 13px; font-weight: 600; padding: 8px 16px; border-radius: 6px; min-height: 32px; } QPushButton#deleteCategoryBtn:hover { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #DC2626, stop:1 #B91C1C); border-color: #B91C1C; } QPushButton#deleteCategoryBtn:pressed { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #B91C1C, stop:1 #991B1B); border-color: #991B1B; } /* 导入规程按钮 */ QPushButton#importBtn { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #10B981, stop:1 #059669); border: 1px solid #059669; color: #FFFFFF; font-size: 13px; font-weight: 600; padding: 8px 16px; border-radius: 6px; min-height: 32px; } QPushButton#importBtn:hover { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #059669, stop:1 #047857); border-color: #047857; } QPushButton#importBtn:pressed { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #047857, stop:1 #065F46); border-color: #065F46; } /* 打开规程按钮 */ QPushButton#openBtn { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #3B82F6, stop:1 #2563EB); border: 1px solid #2563EB; color: #FFFFFF; font-size: 13px; font-weight: 600; padding: 8px 16px; border-radius: 6px; min-height: 32px; } QPushButton#openBtn:hover { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #2563EB, stop:1 #1D4ED8); border-color: #1D4ED8; } QPushButton#openBtn:pressed { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #1D4ED8, stop:1 #1E40AF); border-color: #1E40AF; } /* 导出规程按钮 */ QPushButton#exportBtn { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #F59E0B, stop:1 #D97706); border: 1px solid #D97706; color: #FFFFFF; font-size: 13px; font-weight: 600; padding: 8px 16px; border-radius: 6px; min-height: 32px; } QPushButton#exportBtn:hover { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #D97706, stop:1 #B45309); border-color: #B45309; } QPushButton#exportBtn:pressed { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #B45309, stop:1 #92400E); border-color: #92400E; } /* 删除规程按钮 */ QPushButton#deleteBtn { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #EF4444, stop:1 #DC2626); border: 1px solid #DC2626; color: #FFFFFF; font-size: 13px; font-weight: 600; padding: 8px 16px; border-radius: 6px; min-height: 32px; } QPushButton#deleteBtn:hover { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #DC2626, stop:1 #B91C1C); border-color: #B91C1C; } QPushButton#deleteBtn:pressed { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #B91C1C, stop:1 #991B1B); border-color: #991B1B; } /* ==================== 历史查看器样式 ==================== */ /* 历史记录表格 */ QTableView#historyTable { gridline-color: #d0d0d0; background-color: #FFFFFF; alternate-background-color: #F8FAFC; selection-background-color: #EBF8FF; selection-color: #1E40AF; border: 1px solid #E5E7EB; border-radius: 6px; font-size: 13px; } QTableView#historyTable::item { padding: 8px 12px; border: none; } QTableView#historyTable::item:hover { background-color: #F3F4F6; } QTableView#historyTable::item:selected { background-color: #EBF8FF; color: #1E40AF; } /* 步骤详情信息组 */ QWidget#stepDetailInfoGroup { background-color: #f8f9fa; border: 1px solid #E5E7EB; border-radius: 8px; padding: 16px; } /* 步骤描述文本 */ QLineEdit#stepDescriptionText { background-color: #f8f9fa; border: 1px solid #E5E7EB; border-radius: 4px; padding: 8px; font-size: 13px; color: #374151; } /* 执行结果文本 - 成功 */ QLineEdit#stepResultText[status="success"] { background-color: #d4edda; border: 1px solid #c3e6cb; border-radius: 4px; padding: 8px; font-size: 13px; color: #155724; } /* 执行结果文本 - 失败 */ QLineEdit#stepResultText[status="error"] { background-color: #f8d7da; border: 1px solid #f5c6cb; border-radius: 4px; padding: 8px; font-size: 13px; color: #721c24; } /* 执行结果文本 - 默认 */ QLineEdit#stepResultText[status="default"] { background-color: #fff3cd; border: 1px solid #ffeaa7; border-radius: 4px; padding: 8px; font-size: 13px; color: #856404; } /* ==================== 规程管理工具栏按钮样式 - 与变量表按钮一致 ==================== */ /* 工具栏按钮基础样式 - 与变量表保持一致 */ QToolBar QToolButton { font-size: 14px; font-weight: 600; padding: 10px 16px; border-radius: 8px; border: 1px solid; margin: 3px; min-width: 90px; min-height: 36px; font-family: "PingFangSC-Medium", "Microsoft YaHei", sans-serif; } /* 导入规程按钮 - 绿色主题 (与变量表"开始通讯"一致) */ #importToolBtn { color: #FFFFFF; background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #10B981, stop:1 #059669); border-color: #059669; } #importToolBtn:hover { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #059669, stop:1 #047857); border-color: #047857; } #importToolBtn:pressed { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #047857, stop:1 #065F46); border-color: #065F46; } /* 添加分类按钮 - 蓝色主题 */ #addCategoryToolBtn { color: #FFFFFF; background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #3B82F6, stop:1 #2563EB); border-color: #2563EB; } #addCategoryToolBtn:hover { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #2563EB, stop:1 #1D4ED8); border-color: #1D4ED8; } #addCategoryToolBtn:pressed { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #1D4ED8, stop:1 #1E40AF); border-color: #1E40AF; } /* 删除分类按钮 - 红色主题 */ #deleteCategoryToolBtn { color: #FFFFFF; background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #EF4444, stop:1 #DC2626); border-color: #DC2626; } #deleteCategoryToolBtn:hover { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #DC2626, stop:1 #B91C1C); border-color: #B91C1C; } #deleteCategoryToolBtn:pressed { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #B91C1C, stop:1 #991B1B); border-color: #991B1B; } /* 打开规程按钮 - 蓝色主题 */ #openProcedureToolBtn { color: #FFFFFF; background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #3B82F6, stop:1 #2563EB); border-color: #2563EB; } #openProcedureToolBtn:hover { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #2563EB, stop:1 #1D4ED8); border-color: #1D4ED8; } #openProcedureToolBtn:pressed { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #1D4ED8, stop:1 #1E40AF); border-color: #1E40AF; } /* 删除规程按钮 - 红色主题 */ #deleteProcedureToolBtn { color: #FFFFFF; background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #EF4444, stop:1 #DC2626); border-color: #DC2626; } #deleteProcedureToolBtn:hover { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #DC2626, stop:1 #B91C1C); border-color: #B91C1C; } #deleteProcedureToolBtn:pressed { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #B91C1C, stop:1 #991B1B); border-color: #991B1B; } /* 历史记录按钮 - 紫色主题 */ #historyToolBtn { color: #FFFFFF; background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #8B5CF6, stop:1 #7C3AED); border-color: #7C3AED; } #historyToolBtn:hover { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #7C3AED, stop:1 #6D28D9); border-color: #6D28D9; } #historyToolBtn:pressed { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #6D28D9, stop:1 #5B21B6); border-color: #5B21B6; } /* 批量执行按钮 - 绿色主题 */ #batchExecuteToolBtn { color: #FFFFFF; background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #10B981, stop:1 #059669); border-color: #059669; } #batchExecuteToolBtn:hover { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #059669, stop:1 #047857); border-color: #047857; } #batchExecuteToolBtn:pressed { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #047857, stop:1 #065F46); border-color: #065F46; } /* 关键词管理按钮 - 紫色主题 */ #keywordManageToolBtn { color: #FFFFFF; background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #8B5CF6, stop:1 #7C3AED); border-color: #7C3AED; } #keywordManageToolBtn:hover { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #7C3AED, stop:1 #6D28D9); border-color: #6D28D9; } #keywordManageToolBtn:pressed { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #6D28D9, stop:1 #5B21B6); border-color: #5B21B6; } /* 导出规程按钮 - 橙色主题 */ #exportProcedureToolBtn { color: #FFFFFF; background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #F59E0B, stop:1 #D97706); border-color: #D97706; } #exportProcedureToolBtn:hover { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #D97706, stop:1 #B45309); border-color: #B45309; } #exportProcedureToolBtn:pressed { background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #B45309, stop:1 #92400E); border-color: #92400E; }/ * ==================== 规程管理工具栏按钮样式 - 遵循PyQt5规范 ==================== */ /* 工具栏按钮基础样式 */ QToolBar QToolButton { font-size: 14px; font-weight: 600; padding: 10px 16px; border-radius: 8px; border: 1px solid #E5E7EB; margin: 3px; min-width: 90px; min-height: 36px; font-family: "Microsoft YaHei", sans-serif; color: #FFFFFF; } /* 导入规程按钮 - 绿色主题 */ #importToolBtn { background-color: #10B981; border-color: #059669; } #importToolBtn:hover { background-color: #059669; border-color: #047857; } #importToolBtn:pressed { background-color: #047857; border-color: #065F46; } /* 添加分类按钮 - 蓝色主题 */ #addCategoryToolBtn { background-color: #3B82F6; border-color: #2563EB; } #addCategoryToolBtn:hover { background-color: #2563EB; border-color: #1D4ED8; } #addCategoryToolBtn:pressed { background-color: #1D4ED8; border-color: #1E40AF; } /* 删除分类按钮 - 红色主题 */ #deleteCategoryToolBtn { background-color: #EF4444; border-color: #DC2626; } #deleteCategoryToolBtn:hover { background-color: #DC2626; border-color: #B91C1C; } #deleteCategoryToolBtn:pressed { background-color: #B91C1C; border-color: #991B1B; } /* 打开规程按钮 - 蓝色主题 */ #openProcedureToolBtn { background-color: #3B82F6; border-color: #2563EB; } #openProcedureToolBtn:hover { background-color: #2563EB; border-color: #1D4ED8; } #openProcedureToolBtn:pressed { background-color: #1D4ED8; border-color: #1E40AF; } /* 删除规程按钮 - 红色主题 */ #deleteProcedureToolBtn { background-color: #EF4444; border-color: #DC2626; } #deleteProcedureToolBtn:hover { background-color: #DC2626; border-color: #B91C1C; } #deleteProcedureToolBtn:pressed { background-color: #B91C1C; border-color: #991B1B; } /* 历史记录按钮 - 紫色主题 */ #historyToolBtn { background-color: #8B5CF6; border-color: #7C3AED; } #historyToolBtn:hover { background-color: #7C3AED; border-color: #6D28D9; } #historyToolBtn:pressed { background-color: #6D28D9; border-color: #5B21B6; } /* 批量执行按钮 - 绿色主题 */ #batchExecuteToolBtn { background-color: #10B981; border-color: #059669; } #batchExecuteToolBtn:hover { background-color: #059669; border-color: #047857; } #batchExecuteToolBtn:pressed { background-color: #047857; border-color: #065F46; } /* 关键词管理按钮 - 紫色主题 */ #keywordManageToolBtn { background-color: #8B5CF6; border-color: #7C3AED; } #keywordManageToolBtn:hover { background-color: #7C3AED; border-color: #6D28D9; } #keywordManageToolBtn:pressed { background-color: #6D28D9; border-color: #5B21B6; } /* 导出规程按钮 - 橙色主题 */ #exportProcedureToolBtn { background-color: #F59E0B; border-color: #D97706; } #exportProcedureToolBtn:hover { background-color: #D97706; border-color: #B45309; } #exportProcedureToolBtn:pressed { background-color: #B45309; border-color: #92400E; }