|
|
|
/* ==================== 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;
|
|
|
|
}
|