You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1221 lines
27 KiB
Plaintext
1221 lines
27 KiB
Plaintext
/* ==================== DCS2025 规程管理界面样式 - 现代化设计 ==================== */
|
|
|
|
/* ==================== 全局样式 ==================== */
|
|
QWidget {
|
|
background-color: #F5F7FA;
|
|
color: #374151;
|
|
font-family: "PingFangSC-Regular", "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 {
|
|
background-color: #FFFFFF;
|
|
border: 1px solid #E5E7EB;
|
|
border-radius: 8px;
|
|
padding: 12px 16px;
|
|
margin: 4px 2px;
|
|
color: #374151;
|
|
font-size: 13px;
|
|
font-weight: 500;
|
|
min-width: 80px;
|
|
min-height: 36px;
|
|
}
|
|
|
|
QToolBar QToolButton:hover {
|
|
background-color: #F9FAFB;
|
|
border-color: #D1D5DB;
|
|
color: #1F2937;
|
|
}
|
|
|
|
QToolBar QToolButton:pressed {
|
|
background-color: #F3F4F6;
|
|
border-color: #9CA3AF;
|
|
color: #111827;
|
|
}
|
|
|
|
/* ==================== 标签页样式 ==================== */
|
|
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: 12px 16px;
|
|
color: #374151;
|
|
font-size: 14px;
|
|
font-weight: 400;
|
|
}
|
|
|
|
QLineEdit:focus {
|
|
border-color: #3B82F6;
|
|
background-color: #FEFEFF;
|
|
outline: none;
|
|
}
|
|
|
|
QLineEdit:hover {
|
|
border-color: #9CA3AF;
|
|
}
|
|
|
|
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;
|
|
} |