Files
HIS-GUI/gui/template/premium_theme.qss
2026-04-07 21:30:39 +08:00

790 lines
16 KiB
Plaintext

/* HIS-GUI 精致医疗主题 - Premium Healthcare UI */
/* 设计理念: 现代、简洁、专业、温和的医疗感 */
* {
/* 统一的基础设置 */
outline: none;
}
/* ========== 全局基础样式 ========== */
QMainWindow,
QWidget,
QDialog,
QFrame {
background-color: #f8fafc;
font-family: "Inter", "Microsoft YaHei", "PingFang SC", -apple-system, sans-serif;
font-size: 14px;
color: #1a202c;
letter-spacing: 0.01em;
}
/* ========== 主窗口特殊处理 ========== */
QMainWindow {
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #f8fafc 0%,
stop:1 #edf2f7 100%);
}
/* ========== 菜单栏 - 毛玻璃效果风格 ========== */
QMenuBar {
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #2d3748 0%,
stop:1 #1a202c 100%);
color: #f7fafc;
padding: 8px 12px;
border-bottom: 1px solid #4a5568;
}
QMenuBar::item {
background: transparent;
padding: 8px 16px;
margin: 0 4px;
border-radius: 6px;
color: #e2e8f0;
}
QMenuBar::item:selected {
background: rgba(255, 255, 255, 0.1);
color: #ffffff;
}
QMenuBar::item:pressed {
background: rgba(255, 255, 255, 0.15);
}
QMenu {
background: rgba(255, 255, 255, 0.98);
border: 1px solid rgba(226, 232, 240, 0.8);
border-radius: 10px;
padding: 8px 4px;
/* 轻微阴影效果 */
outline: 0;
}
QMenu::item {
padding: 10px 32px 10px 20px;
border-radius: 6px;
margin: 2px 6px;
color: #2d3748;
}
QMenu::item:selected {
background: qlineargradient(x1:0, y1:0, x2:1, y2:0,
stop:0 #ebf8ff 0%,
stop:1 #e6fffa 100%);
color: #234e52;
}
/* ========== 工具栏 ========== */
QToolBar {
background: rgba(255, 255, 255, 0.9);
border: none;
border-bottom: 1px solid #e2e8f0;
padding: 10px 16px;
spacing: 12px;
}
QToolBar::separator {
background: #e2e8f0;
width: 1px;
height: 24px;
margin: 0 8px;
}
/* ========== 侧边导航栏 - 精美国风 ========== */
QListWidget {
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #1a365d 0%,
stop:0.5 #2c5282 50%,
stop:1 #2b6cb0 100%);
border: none;
border-right: 1px solid #2c5282;
padding: 16px 0;
outline: 0;
}
QListWidget::item {
color: #bee3f8;
padding: 14px 28px;
margin: 4px 12px;
border-radius: 10px;
font-size: 15px;
font-weight: 500;
/* 图标和文字间距 */
spacing: 12px;
}
QListWidget::item:selected {
background: qlineargradient(x1:0, y1:0, x2:1, y2:0,
stop:0 rgba(255,255,255,0.15) 0%,
stop:1 rgba(255,255,255,0.25) 100%);
color: #ffffff;
border: 1px solid rgba(255, 255, 255, 0.2);
}
QListWidget::item:hover:!selected {
background: rgba(255, 255, 255, 0.08);
color: #e2e8f0;
}
/* ========== 按钮系统 - 精致圆角 ========== */
QPushButton {
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #4299e1 0%,
stop:1 #3182ce 100%);
color: #ffffff;
border: none;
border-radius: 8px;
padding: 10px 22px;
font-size: 14px;
font-weight: 500;
min-width: 85px;
/* 轻微边框增加层次 */
border: 1px solid rgba(66, 153, 225, 0.5);
}
QPushButton:hover {
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #3182ce 0%,
stop:1 #2b6cb0 100%);
border: 1px solid rgba(66, 153, 225, 0.8);
}
QPushButton:pressed {
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #2b6cb0 0%,
stop:1 #2c5282 100%);
}
QPushButton:disabled {
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #cbd5e0 0%,
stop:1 #a0aec0 100%);
color: #718096;
border-color: transparent;
}
/* 主要操作按钮 - 增强版 */
QPushButton[class="primary"] {
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #4299e1 0%,
stop:1 #3182ce 100%);
border: 1px solid rgba(66, 153, 225, 0.5);
}
QPushButton[class="primary"]:hover {
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #3182ce 0%,
stop:1 #2b6cb0 100%);
}
/* 次要操作按钮 - 柔和灰 */
QPushButton[class="secondary"] {
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #edf2f7 0%,
stop:1 #e2e8f0 100%);
color: #4a5568;
border: 1px solid #cbd5e0;
}
QPushButton[class="secondary"]:hover {
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #e2e8f0 0%,
stop:1 #cbd5e0 100%);
color: #2d3748;
}
/* 成功按钮 - 翡翠绿 */
QPushButton[class="success"] {
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #48bb78 0%,
stop:1 #38a169 100%);
border: 1px solid rgba(72, 187, 120, 0.5);
}
QPushButton[class="success"]:hover {
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #38a169 0%,
stop:1 #2f855a 100%);
}
/* 警告按钮 - 琥珀橙 */
QPushButton[class="warning"] {
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #ed8936 0%,
stop:1 #dd6b20 100%);
border: 1px solid rgba(237, 137, 54, 0.5);
}
QPushButton[class="warning"]:hover {
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #dd6b20 0%,
stop:1 #c05621 100%);
}
/* 危险按钮 - 珊瑚红 */
QPushButton[class="danger"] {
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #fc8181 0%,
stop:1 #f56565 100%);
border: 1px solid rgba(252, 129, 129, 0.5);
}
QPushButton[class="danger"]:hover {
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #f56565 0%,
stop:1 #e53e3e 100%);
}
/* ========== 输入框系统 ========== */
QLineEdit,
QTextEdit,
QPlainTextEdit {
background-color: #ffffff;
border: 2px solid #e2e8f0;
border-radius: 10px;
padding: 12px 16px;
color: #1a202c;
selection-background-color: #4299e1;
selection-color: #ffffff;
/* 输入框内部padding */
font-size: 14px;
}
QLineEdit:hover,
QTextEdit:hover,
QPlainTextEdit:hover {
border-color: #cbd5e0;
}
QLineEdit:focus,
QTextEdit:focus,
QPlainTextEdit:focus {
border: 2px solid #4299e1;
background-color: #f7fafc;
/* 聚焦时的微妙光晕 */
border-shadow: 0 0 0 3px rgba(66, 153, 225, 0.15);
}
QLineEdit:disabled,
QTextEdit:disabled,
QPlainTextEdit:disabled {
background-color: #f7fafc;
color: #a0aec0;
border-color: #e2e8f0;
}
/* ========== 下拉框 ========== */
QComboBox {
background-color: #ffffff;
border: 2px solid #e2e8f0;
border-radius: 10px;
padding: 12px 16px;
color: #1a202c;
min-width: 110px;
font-size: 14px;
}
QComboBox:hover {
border-color: #cbd5e0;
}
QComboBox:focus,
QComboBox:on {
border: 2px solid #4299e1;
border-shadow: 0 0 0 3px rgba(66, 153, 225, 0.15);
}
QComboBox::drop-down {
border: none;
width: 36px;
subcontrol-origin: padding;
subcontrol-position: right center;
}
QComboBox::down-arrow {
image: none;
width: 0;
height: 0;
border-left: 6px solid transparent;
border-right: 6px solid transparent;
border-top: 8px solid #718096;
margin-right: 12px;
}
QComboBox QAbstractItemView {
background-color: #ffffff;
border: 1px solid #e2e8f0;
border-radius: 10px;
selection-background-color: #ebf8ff;
selection-color: #2b6cb0;
padding: 8px;
outline: 0;
}
QComboBox QAbstractItemView::item {
padding: 10px 16px;
border-radius: 6px;
margin: 2px 4px;
}
/* ========== SpinBox ========== */
QSpinBox,
QDoubleSpinBox {
background-color: #ffffff;
border: 2px solid #e2e8f0;
border-radius: 10px;
padding: 10px 14px;
color: #1a202c;
font-size: 14px;
}
QSpinBox:focus,
QDoubleSpinBox:focus {
border: 2px solid #4299e1;
border-shadow: 0 0 0 3px rgba(66, 153, 225, 0.15);
}
QSpinBox::up-button,
QDoubleSpinBox::up-button,
QSpinBox::down-button,
QDoubleSpinBox::down-button {
background: transparent;
border: none;
width: 24px;
}
/* ========== 表格 - 精致卡片风格 ========== */
QTableWidget,
QTableView {
background-color: #ffffff;
border: 1px solid #e2e8f0;
border-radius: 12px;
gridline-color: #f1f5f9;
selection-background-color: #ebf8ff;
selection-color: #2b6cb0;
outline: 0;
/* 表格圆角效果 */
border-top-left-radius: 12px;
border-top-right-radius: 12px;
}
QTableWidget::item,
QTableView::item {
padding: 14px 12px;
border-bottom: 1px solid #f1f5f9;
color: #2d3748;
}
QTableWidget::item:selected,
QTableView::item:selected {
background-color: #ebf8ff;
color: #2b6cb0;
}
QTableWidget::item:hover,
QTableView::item:hover {
background-color: #f7fafc;
}
/* 表头 - 深蓝渐变 */
QHeaderView::section {
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #2d3748 0%,
stop:1 #1a202c 100%);
color: #ffffff;
padding: 14px 12px;
border: none;
border-right: 1px solid #4a5568;
font-weight: 600;
text-align: left;
}
QHeaderView::section:last {
border-right: none;
border-top-right-radius: 12px;
}
QHeaderView::section:first {
border-top-left-radius: 12px;
}
QHeaderView::section:hover {
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #4a5568 0%,
stop:1 #2d3748 100%);
}
/* ========== 树形控件 ========== */
QTreeWidget,
QTreeView {
background-color: #ffffff;
border: 1px solid #e2e8f0;
border-radius: 12px;
padding: 12px;
outline: 0;
}
QTreeWidget::item,
QTreeView::item {
padding: 10px 8px;
border-bottom: 1px solid #f1f5f9;
color: #2d3748;
}
QTreeWidget::item:hover,
QTreeView::item:hover {
background-color: #f7fafc;
}
QTreeWidget::item:selected,
QTreeView::item:selected {
background-color: #ebf8ff;
color: #2b6cb0;
}
/* ========== Tab标签页 ========== */
QTabWidget::pane {
border: 1px solid #e2e8f0;
border-radius: 12px;
background-color: #ffffff;
margin-top: -1px;
border-top-left-radius: 0;
border-top-right-radius: 12px;
border-bottom-left-radius: 12px;
border-bottom-right-radius: 12px;
}
QTabBar::tab {
background-color: #f7fafc;
color: #718096;
padding: 12px 28px;
margin-right: 4px;
border-top-left-radius: 10px;
border-top-right-radius: 10px;
font-weight: 500;
font-size: 14px;
border: 1px solid #e2e8f0;
border-bottom: none;
}
QTabBar::tab:selected {
background-color: #ffffff;
color: #2b6cb0;
border: 1px solid #e2e8f0;
border-bottom: 2px solid #ffffff;
margin-bottom: -1px;
}
QTabBar::tab:hover:!selected {
background-color: #edf2f7;
color: #4a5568;
}
/* ========== 组框 - 卡片风格 ========== */
QGroupBox {
background-color: #ffffff;
border: 1px solid #e2e8f0;
border-radius: 12px;
margin-top: 18px;
padding: 20px;
padding-top: 30px;
font-weight: 600;
color: #2d3748;
}
QGroupBox::title {
subcontrol-origin: margin;
subcontrol-position: top left;
left: 20px;
padding: 0 14px;
background-color: #ffffff;
color: #2b6cb0;
}
/* ========== 标签 ========== */
QLabel {
color: #2d3748;
background-color: transparent;
}
QLabel[heading="true"] {
font-size: 20px;
font-weight: 700;
color: #1a202c;
padding: 4px 0;
}
QLabel[subheading="true"] {
font-size: 16px;
font-weight: 600;
color: #4a5568;
padding: 2px 0;
}
/* ========== 滚动条 - 精致细条 ========== */
QScrollBar:vertical {
background-color: transparent;
width: 10px;
margin: 8px 4px;
border-radius: 5px;
}
QScrollBar::handle:vertical {
background-color: #cbd5e0;
border-radius: 5px;
min-height: 40px;
margin: 0 2px;
}
QScrollBar::handle:vertical:hover {
background-color: #a0aec0;
}
QScrollBar::add-line:vertical,
QScrollBar::sub-line:vertical {
height: 0;
border: none;
}
QScrollBar:horizontal {
background-color: transparent;
height: 10px;
margin: 4px 8px;
border-radius: 5px;
}
QScrollBar::handle:horizontal {
background-color: #cbd5e0;
border-radius: 5px;
min-width: 40px;
margin: 2px 0;
}
QScrollBar::handle:horizontal:hover {
background-color: #a0aec0;
}
QScrollBar::add-line:horizontal,
QScrollBar::sub-line:horizontal {
width: 0;
border: none;
}
/* ========== 进度条 ========== */
QProgressBar {
background-color: #edf2f7;
border: none;
border-radius: 8px;
height: 12px;
text-align: center;
color: #4a5568;
font-weight: 600;
font-size: 12px;
}
QProgressBar::chunk {
background: qlineargradient(x1:0, y1:0, x2:1, y2:0,
stop:0 #4299e1 0%,
stop:1 #48bb78 100%);
border-radius: 8px;
}
/* ========== 滑块 ========== */
QSlider::groove:horizontal {
border: none;
height: 6px;
background-color: #e2e8f0;
border-radius: 3px;
}
QSlider::handle:horizontal {
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #ffffff 0%,
stop:1 #e2e8f0 100%);
border: 2px solid #4299e1;
width: 20px;
height: 20px;
margin: -7px 0;
border-radius: 10px;
}
QSlider::handle:horizontal:hover {
border-color: #3182ce;
}
QSlider::sub-page:horizontal {
background: qlineargradient(x1:0, y1:0, x2:1, y2:0,
stop:0 #4299e1 0%,
stop:1 #48bb78 100%);
border-radius: 3px;
}
/* ========== 复选框 ========== */
QCheckBox {
spacing: 12px;
color: #2d3748;
font-size: 14px;
}
QCheckBox::indicator {
width: 20px;
height: 20px;
border: 2px solid #cbd5e0;
border-radius: 5px;
background-color: #ffffff;
}
QCheckBox::indicator:checked {
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #4299e1 0%,
stop:1 #3182ce 100%);
border-color: #4299e1;
image: none;
}
QCheckBox::indicator:hover {
border-color: #4299e1;
}
/* ========== 单选按钮 ========== */
QRadioButton {
spacing: 12px;
color: #2d3748;
font-size: 14px;
}
QRadioButton::indicator {
width: 20px;
height: 20px;
border: 2px solid #cbd5e0;
border-radius: 10px;
background-color: #ffffff;
}
QRadioButton::indicator:checked {
background-color: #ffffff;
border-color: #4299e1;
border-width: 4px;
}
QRadioButton::indicator:hover {
border-color: #4299e1;
}
/* ========== 工具提示 ========== */
QToolTip {
background-color: #1a202c;
color: #ffffff;
border: none;
border-radius: 6px;
padding: 8px 14px;
font-size: 13px;
font-weight: 500;
}
/* ========== 状态栏 ========== */
QStatusBar {
background-color: #ffffff;
border-top: 1px solid #e2e8f0;
color: #718096;
padding: 8px 12px;
font-size: 13px;
}
QStatusBar::item {
border: none;
}
/* ========== 日期选择器 ========== */
QDateEdit,
QDateTimeEdit {
background-color: #ffffff;
border: 2px solid #e2e8f0;
border-radius: 10px;
padding: 10px 14px;
color: #1a202c;
font-size: 14px;
}
QDateEdit:focus,
QDateTimeEdit:focus {
border: 2px solid #4299e1;
border-shadow: 0 0 0 3px rgba(66, 153, 225, 0.15);
}
/* ========== 消息框 ========== */
QMessageBox {
background-color: #ffffff;
border-radius: 12px;
}
QMessageBox QLabel {
color: #2d3748;
padding: 12px;
font-size: 14px;
}
QMessageBox QPushButton {
min-width: 100px;
}
/* ========== 对话框按钮 ========== */
QDialogButtonBox {
spacing: 12px;
}
QDialogButtonBox QPushButton {
min-width: 100px;
padding: 10px 20px;
}
/* ========== 工具提示 ========== */
QToolTip {
background-color: #2d3748;
color: #ffffff;
border: none;
border-radius: 6px;
padding: 8px 12px;
font-size: 13px;
}
/* ========== 列表视图 ========== */
QListView {
background-color: #ffffff;
border: 1px solid #e2e8f0;
border-radius: 10px;
outline: 0;
}
QListView::item {
padding: 10px 16px;
border-bottom: 1px solid #f1f5f9;
}
QListView::item:hover {
background-color: #f7fafc;
}
QListView::item:selected {
background-color: #ebf8ff;
color: #2b6cb0;
}
/* ========== 滚动区域 ========== */
QScrollArea {
background-color: transparent;
border: none;
}
QScrollArea > QWidget > QWidget {
background-color: transparent;
}
/* ========== 框架 ========== */
QFrame[frameShape="4"],
QFrame[frameShape="5"] {
border: none;
background-color: #e2e8f0;
}