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.
652 lines
16 KiB
Plaintext
652 lines
16 KiB
Plaintext
4 months ago
|
/* 规程管理系统 - 白色浅蓝色QSS样式 */
|
||
|
|
||
|
/* ==================== 全局样式 ==================== */
|
||
|
QWidget {
|
||
|
background-color: #ffffff;
|
||
|
color: #2c3e50;
|
||
|
font-family: "Microsoft YaHei", "Segoe UI", Arial, sans-serif;
|
||
|
font-size: 9pt;
|
||
|
selection-background-color: #3498db;
|
||
|
selection-color: #ffffff;
|
||
|
}
|
||
|
|
||
|
/* ==================== 主窗口 ==================== */
|
||
|
QMainWindow {
|
||
|
background-color: #f8f9fa;
|
||
|
border: none;
|
||
|
}
|
||
|
|
||
|
QMainWindow::separator {
|
||
|
background-color: #bdc3c7;
|
||
|
width: 2px;
|
||
|
height: 2px;
|
||
|
}
|
||
|
|
||
|
/* ==================== 工具栏 ==================== */
|
||
|
QToolBar {
|
||
|
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
|
||
|
stop: 0 #ecf0f1, stop: 1 #d5dbdb);
|
||
|
border: none;
|
||
|
spacing: 3px;
|
||
|
padding: 5px;
|
||
|
border-bottom: 2px solid #3498db;
|
||
|
}
|
||
|
|
||
|
QToolBar::handle {
|
||
|
background: #bdc3c7;
|
||
|
width: 8px;
|
||
|
margin: 2px;
|
||
|
}
|
||
|
|
||
|
QToolBar QToolButton {
|
||
|
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
|
||
|
stop: 0 #ffffff, stop: 1 #ecf0f1);
|
||
|
border: 1px solid #bdc3c7;
|
||
|
border-radius: 6px;
|
||
|
padding: 8px 12px;
|
||
|
margin: 2px;
|
||
|
color: #2c3e50;
|
||
|
font-weight: bold;
|
||
|
}
|
||
|
|
||
|
QToolBar QToolButton:hover {
|
||
|
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
|
||
|
stop: 0 #e8f4fd, stop: 1 #d6eaff);
|
||
|
border: 1px solid #3498db;
|
||
|
box-shadow: 0 2px 4px rgba(52, 152, 219, 0.3);
|
||
|
}
|
||
|
|
||
|
QToolBar QToolButton:pressed {
|
||
|
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
|
||
|
stop: 0 #d6eaff, stop: 1 #c3e2ff);
|
||
|
border: 1px solid #2980b9;
|
||
|
}
|
||
|
|
||
|
QToolBar QToolButton:disabled {
|
||
|
background: #f5f6fa;
|
||
|
color: #95a5a6;
|
||
|
border: 1px solid #d5dbdb;
|
||
|
}
|
||
|
|
||
|
/* ==================== 状态栏 ==================== */
|
||
|
QStatusBar {
|
||
|
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
|
||
|
stop: 0 #ecf0f1, stop: 1 #d5dbdb);
|
||
|
border-top: 1px solid #bdc3c7;
|
||
|
color: #34495e;
|
||
|
padding: 3px;
|
||
|
}
|
||
|
|
||
|
QStatusBar::item {
|
||
|
border: none;
|
||
|
}
|
||
|
|
||
|
/* ==================== 按钮 ==================== */
|
||
|
QPushButton {
|
||
|
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
|
||
|
stop: 0 #ffffff, stop: 1 #ecf0f1);
|
||
|
border: 1px solid #bdc3c7;
|
||
|
border-radius: 8px;
|
||
|
padding: 10px 16px;
|
||
|
font-weight: bold;
|
||
|
color: #2c3e50;
|
||
|
min-width: 80px;
|
||
|
min-height: 30px;
|
||
|
}
|
||
|
|
||
|
QPushButton:hover {
|
||
|
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
|
||
|
stop: 0 #e8f4fd, stop: 1 #d6eaff);
|
||
|
border: 1px solid #3498db;
|
||
|
box-shadow: 0 2px 8px rgba(52, 152, 219, 0.4);
|
||
|
}
|
||
|
|
||
|
QPushButton:pressed {
|
||
|
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
|
||
|
stop: 0 #d6eaff, stop: 1 #c3e2ff);
|
||
|
border: 1px solid #2980b9;
|
||
|
}
|
||
|
|
||
|
QPushButton:disabled {
|
||
|
background: #f5f6fa;
|
||
|
color: #95a5a6;
|
||
|
border: 1px solid #d5dbdb;
|
||
|
}
|
||
|
|
||
|
/* 特殊按钮颜色 */
|
||
|
QPushButton[text*="开始"], QPushButton[text*="执行"] {
|
||
|
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
|
||
|
stop: 0 #58d68d, stop: 1 #27ae60);
|
||
|
border: 1px solid #2ecc71;
|
||
|
color: #ffffff;
|
||
|
}
|
||
|
|
||
|
QPushButton[text*="开始"]:hover, QPushButton[text*="执行"]:hover {
|
||
|
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
|
||
|
stop: 0 #7dcea0, stop: 1 #58d68d);
|
||
|
box-shadow: 0 2px 8px rgba(46, 204, 113, 0.4);
|
||
|
}
|
||
|
|
||
|
QPushButton[text*="停止"], QPushButton[text*="删除"] {
|
||
|
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
|
||
|
stop: 0 #ec7063, stop: 1 #e74c3c);
|
||
|
border: 1px solid #e67e22;
|
||
|
color: #ffffff;
|
||
|
}
|
||
|
|
||
|
QPushButton[text*="停止"]:hover, QPushButton[text*="删除"]:hover {
|
||
|
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
|
||
|
stop: 0 #f1948a, stop: 1 #ec7063);
|
||
|
box-shadow: 0 2px 8px rgba(231, 76, 60, 0.4);
|
||
|
}
|
||
|
|
||
|
QPushButton[text*="重置"] {
|
||
|
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
|
||
|
stop: 0 #f7dc6f, stop: 1 #f39c12);
|
||
|
border: 1px solid #f1c40f;
|
||
|
color: #ffffff;
|
||
|
}
|
||
|
|
||
|
QPushButton[text*="重置"]:hover {
|
||
|
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
|
||
|
stop: 0 #f8e6a0, stop: 1 #f7dc6f);
|
||
|
box-shadow: 0 2px 8px rgba(243, 156, 18, 0.4);
|
||
|
}
|
||
|
|
||
|
QPushButton[text*="报告"], QPushButton[text*="导入"] {
|
||
|
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
|
||
|
stop: 0 #bb8fce, stop: 1 #9b59b6);
|
||
|
border: 1px solid #af7ac5;
|
||
|
color: #ffffff;
|
||
|
}
|
||
|
|
||
|
QPushButton[text*="报告"]:hover, QPushButton[text*="导入"]:hover {
|
||
|
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
|
||
|
stop: 0 #d2b4de, stop: 1 #bb8fce);
|
||
|
box-shadow: 0 2px 8px rgba(155, 89, 182, 0.4);
|
||
|
}
|
||
|
|
||
|
/* ==================== 标签 ==================== */
|
||
|
QLabel {
|
||
|
color: #2c3e50;
|
||
|
background: transparent;
|
||
|
font-weight: normal;
|
||
|
}
|
||
|
|
||
|
QLabel[text="规程分类"], QLabel[text="规程列表"], QLabel[text="测试步骤:"] {
|
||
|
font-size: 11pt;
|
||
|
font-weight: bold;
|
||
|
color: #3498db;
|
||
|
padding: 5px 0px;
|
||
|
}
|
||
|
|
||
|
/* ==================== 表格视图 ==================== */
|
||
|
QTableView {
|
||
|
background-color: #ffffff;
|
||
|
alternate-background-color: #f8f9fa;
|
||
|
gridline-color: #d5dbdb;
|
||
|
border: 1px solid #bdc3c7;
|
||
|
border-radius: 8px;
|
||
|
selection-background-color: #3498db;
|
||
|
selection-color: #ffffff;
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
QHeaderView::section {
|
||
|
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
|
||
|
stop: 0 #ffffff, stop: 1 #ecf0f1);
|
||
|
color: #2c3e50;
|
||
|
padding: 10px 8px;
|
||
|
border: none;
|
||
|
border-right: 1px solid #bdc3c7;
|
||
|
border-bottom: 2px solid #3498db;
|
||
|
font-weight: bold;
|
||
|
}
|
||
|
|
||
|
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 #e8f4fd, stop: 1 #d6eaff);
|
||
|
}
|
||
|
|
||
|
/* ==================== 列表控件 ==================== */
|
||
|
QListWidget {
|
||
|
background-color: #ffffff;
|
||
|
border: 1px solid #bdc3c7;
|
||
|
border-radius: 8px;
|
||
|
padding: 5px;
|
||
|
outline: none;
|
||
|
}
|
||
|
|
||
|
QListWidget::item {
|
||
|
background-color: transparent;
|
||
|
border: none;
|
||
|
border-radius: 4px;
|
||
|
padding: 10px 8px;
|
||
|
margin: 2px;
|
||
|
color: #2c3e50;
|
||
|
}
|
||
|
|
||
|
QListWidget::item:hover {
|
||
|
background-color: #e8f4fd;
|
||
|
border: 1px solid #3498db;
|
||
|
}
|
||
|
|
||
|
QListWidget::item:selected {
|
||
|
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
|
||
|
stop: 0 #3498db, stop: 1 #2980b9);
|
||
|
color: #ffffff;
|
||
|
border: 1px solid #5dade2;
|
||
|
}
|
||
|
|
||
|
/* ==================== 选项卡 ==================== */
|
||
|
QTabWidget::pane {
|
||
|
border: 1px solid #bdc3c7;
|
||
|
border-radius: 8px;
|
||
|
background-color: #ffffff;
|
||
|
top: -1px;
|
||
|
}
|
||
|
|
||
|
QTabBar::tab {
|
||
|
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
|
||
|
stop: 0 #ffffff, stop: 1 #ecf0f1);
|
||
|
border: 1px solid #bdc3c7;
|
||
|
padding: 10px 20px;
|
||
|
margin-right: 2px;
|
||
|
border-top-left-radius: 8px;
|
||
|
border-top-right-radius: 8px;
|
||
|
color: #34495e;
|
||
|
}
|
||
|
|
||
|
QTabBar::tab:selected {
|
||
|
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
|
||
|
stop: 0 #3498db, stop: 1 #2980b9);
|
||
|
color: #ffffff;
|
||
|
border-bottom-color: #ffffff;
|
||
|
}
|
||
|
|
||
|
QTabBar::tab:hover:!selected {
|
||
|
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
|
||
|
stop: 0 #e8f4fd, stop: 1 #d6eaff);
|
||
|
}
|
||
|
|
||
|
/* ==================== 输入控件 ==================== */
|
||
|
QLineEdit {
|
||
|
background-color: #ffffff;
|
||
|
border: 2px solid #bdc3c7;
|
||
|
border-radius: 6px;
|
||
|
padding: 8px 12px;
|
||
|
color: #2c3e50;
|
||
|
font-size: 9pt;
|
||
|
}
|
||
|
|
||
|
QLineEdit:focus {
|
||
|
border: 2px solid #3498db;
|
||
|
background-color: #fdfdfe;
|
||
|
box-shadow: 0 0 8px rgba(52, 152, 219, 0.3);
|
||
|
}
|
||
|
|
||
|
QLineEdit:hover {
|
||
|
border: 2px solid #3498db;
|
||
|
}
|
||
|
|
||
|
QSpinBox {
|
||
|
background-color: #ffffff;
|
||
|
border: 2px solid #bdc3c7;
|
||
|
border-radius: 6px;
|
||
|
padding: 8px;
|
||
|
color: #2c3e50;
|
||
|
min-width: 60px;
|
||
|
}
|
||
|
|
||
|
QSpinBox:focus {
|
||
|
border: 2px solid #3498db;
|
||
|
background-color: #fdfdfe;
|
||
|
}
|
||
|
|
||
|
QSpinBox::up-button, QSpinBox::down-button {
|
||
|
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
|
||
|
stop: 0 #ffffff, stop: 1 #ecf0f1);
|
||
|
border: 1px solid #bdc3c7;
|
||
|
width: 20px;
|
||
|
}
|
||
|
|
||
|
QSpinBox::up-button:hover, QSpinBox::down-button:hover {
|
||
|
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
|
||
|
stop: 0 #e8f4fd, stop: 1 #d6eaff);
|
||
|
}
|
||
|
|
||
|
QSpinBox::up-arrow {
|
||
|
image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAGCAYAAAD37n+BAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAdgAAAHYBTnsmCAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAABHSURBVBiVY/z//z8DJYCJgUIwqmFUw6gGcjWQ5QdqaKBYA7ma/lOggWwN5PqBGhoo1kCuJnI1/KdAA9ka/lOggVwN5PoBAJZzBTcQ48y8AAAAAElFTkSuQmCC);
|
||
|
width: 8px;
|
||
|
height: 4px;
|
||
|
}
|
||
|
|
||
|
QSpinBox::down-arrow {
|
||
|
image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAGCAYAAAD37n+BAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAdgAAAHYBTnsmCAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAABHSURBVBiVY2D4/58BFWBioBCMahgYDf8p0EC2hv8UaCBbA7ma/lOggWwN5Gqipwayff+fAg1ka/hPgQayNZCriboGAJd7BTc3gZfyAAAAAElFTkSuQmCC);
|
||
|
width: 8px;
|
||
|
height: 4px;
|
||
|
}
|
||
|
|
||
|
/* ==================== 复选框 ==================== */
|
||
|
QCheckBox {
|
||
|
color: #2c3e50;
|
||
|
spacing: 8px;
|
||
|
}
|
||
|
|
||
|
QCheckBox::indicator {
|
||
|
width: 18px;
|
||
|
height: 18px;
|
||
|
border: 2px solid #bdc3c7;
|
||
|
border-radius: 3px;
|
||
|
background-color: #ffffff;
|
||
|
}
|
||
|
|
||
|
QCheckBox::indicator:hover {
|
||
|
border: 2px solid #3498db;
|
||
|
background-color: #e8f4fd;
|
||
|
}
|
||
|
|
||
|
QCheckBox::indicator:checked {
|
||
|
background-color: #3498db;
|
||
|
border: 2px solid #2980b9;
|
||
|
image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAJCAYAAAAGuM1UAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAdgAAAHYBTnsmCAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAABmSURBVBiVjZExDsIwEAT3JFpKSoo8gCfwCF7ACyipa3oCb+ANvIEn8AaegJYqLWnSRMmy1/YkFhftzNw9jUajUQMwBTaStpJOkmZm9jSzB/A0sy2wljS193O6nZmdgR/wBhYRcfsDGEwlvgBP2TAAAAAASUVORK5CYII=);
|
||
|
}
|
||
|
|
||
|
QCheckBox::indicator:checked:hover {
|
||
|
background-color: #5dade2;
|
||
|
}
|
||
|
|
||
|
/* ==================== 组合框 ==================== */
|
||
|
QComboBox {
|
||
|
background-color: #ffffff;
|
||
|
border: 2px solid #bdc3c7;
|
||
|
border-radius: 6px;
|
||
|
padding: 8px 12px;
|
||
|
color: #2c3e50;
|
||
|
min-width: 100px;
|
||
|
}
|
||
|
|
||
|
QComboBox:focus {
|
||
|
border: 2px solid #3498db;
|
||
|
background-color: #fdfdfe;
|
||
|
}
|
||
|
|
||
|
QComboBox::drop-down {
|
||
|
border: none;
|
||
|
width: 30px;
|
||
|
}
|
||
|
|
||
|
QComboBox::down-arrow {
|
||
|
image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAGCAYAAAD37n+BAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAdgAAAHYBTnsmCAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAABHSURBVBiVY2D4/58BFWBioBCMahgYDf8p0EC2hv8UaCBbA7ma/lOggWwN5Gqipwayff+fAg1ka/hPgQayNZCriboGAJd7BTc3gZfyAAAAAElFTkSuQmCC);
|
||
|
width: 12px;
|
||
|
height: 8px;
|
||
|
}
|
||
|
|
||
|
QComboBox QAbstractItemView {
|
||
|
background-color: #ffffff;
|
||
|
border: 1px solid #bdc3c7;
|
||
|
border-radius: 6px;
|
||
|
color: #2c3e50;
|
||
|
selection-background-color: #3498db;
|
||
|
padding: 4px;
|
||
|
}
|
||
|
|
||
|
QComboBox QAbstractItemView::item {
|
||
|
height: 30px;
|
||
|
padding: 6px 12px;
|
||
|
border: none;
|
||
|
border-radius: 4px;
|
||
|
}
|
||
|
|
||
|
QComboBox QAbstractItemView::item:hover {
|
||
|
background-color: #e8f4fd;
|
||
|
}
|
||
|
|
||
|
QComboBox QAbstractItemView::item:selected {
|
||
|
background-color: #3498db;
|
||
|
color: #ffffff;
|
||
|
}
|
||
|
|
||
|
/* ==================== 对话框 ==================== */
|
||
|
QDialog {
|
||
|
background-color: #ffffff;
|
||
|
border: 1px solid #bdc3c7;
|
||
|
border-radius: 12px;
|
||
|
}
|
||
|
|
||
|
QDialogButtonBox QPushButton {
|
||
|
min-width: 100px;
|
||
|
padding: 10px 20px;
|
||
|
}
|
||
|
|
||
|
/* ==================== 消息框 ==================== */
|
||
|
QMessageBox {
|
||
|
background-color: #ffffff;
|
||
|
color: #2c3e50;
|
||
|
border-radius: 8px;
|
||
|
}
|
||
|
|
||
|
QMessageBox QLabel {
|
||
|
color: #2c3e50;
|
||
|
font-size: 10pt;
|
||
|
}
|
||
|
|
||
|
QMessageBox QPushButton {
|
||
|
min-width: 80px;
|
||
|
padding: 8px 16px;
|
||
|
}
|
||
|
|
||
|
/* ==================== 表单布局 ==================== */
|
||
|
QFormLayout QLabel {
|
||
|
font-weight: bold;
|
||
|
color: #3498db;
|
||
|
min-width: 100px;
|
||
|
}
|
||
|
|
||
|
/* ==================== 滚动条 ==================== */
|
||
|
QScrollBar:vertical {
|
||
|
background-color: #f8f9fa;
|
||
|
width: 12px;
|
||
|
border-radius: 6px;
|
||
|
margin: 0px;
|
||
|
}
|
||
|
|
||
|
QScrollBar::handle:vertical {
|
||
|
background: qlineargradient(x1: 0, y1: 0, x2: 1, y2: 0,
|
||
|
stop: 0 #d5dbdb, stop: 1 #bdc3c7);
|
||
|
border-radius: 6px;
|
||
|
min-height: 30px;
|
||
|
}
|
||
|
|
||
|
QScrollBar::handle:vertical:hover {
|
||
|
background: qlineargradient(x1: 0, y1: 0, x2: 1, y2: 0,
|
||
|
stop: 0 #3498db, stop: 1 #2980b9);
|
||
|
}
|
||
|
|
||
|
QScrollBar::handle:vertical:pressed {
|
||
|
background: qlineargradient(x1: 0, y1: 0, x2: 1, y2: 0,
|
||
|
stop: 0 #2980b9, stop: 1 #21618c);
|
||
|
}
|
||
|
|
||
|
QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical {
|
||
|
height: 0px;
|
||
|
background: none;
|
||
|
}
|
||
|
|
||
|
QScrollBar:horizontal {
|
||
|
background-color: #f8f9fa;
|
||
|
height: 12px;
|
||
|
border-radius: 6px;
|
||
|
margin: 0px;
|
||
|
}
|
||
|
|
||
|
QScrollBar::handle:horizontal {
|
||
|
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
|
||
|
stop: 0 #d5dbdb, stop: 1 #bdc3c7);
|
||
|
border-radius: 6px;
|
||
|
min-width: 30px;
|
||
|
}
|
||
|
|
||
|
QScrollBar::handle:horizontal:hover {
|
||
|
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
|
||
|
stop: 0 #3498db, stop: 1 #2980b9);
|
||
|
}
|
||
|
|
||
|
QScrollBar::handle:horizontal:pressed {
|
||
|
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
|
||
|
stop: 0 #2980b9, stop: 1 #21618c);
|
||
|
}
|
||
|
|
||
|
QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal {
|
||
|
width: 0px;
|
||
|
background: none;
|
||
|
}
|
||
|
|
||
|
/* ==================== 菜单 ==================== */
|
||
|
QMenu {
|
||
|
background-color: #ffffff;
|
||
|
border: 1px solid #bdc3c7;
|
||
|
border-radius: 8px;
|
||
|
padding: 4px;
|
||
|
color: #2c3e50;
|
||
|
}
|
||
|
|
||
|
QMenu::item {
|
||
|
background-color: transparent;
|
||
|
padding: 8px 16px;
|
||
|
border-radius: 4px;
|
||
|
margin: 1px;
|
||
|
}
|
||
|
|
||
|
QMenu::item:selected {
|
||
|
background-color: #3498db;
|
||
|
color: #ffffff;
|
||
|
}
|
||
|
|
||
|
QMenu::item:disabled {
|
||
|
color: #95a5a6;
|
||
|
}
|
||
|
|
||
|
QMenu::separator {
|
||
|
height: 1px;
|
||
|
background-color: #d5dbdb;
|
||
|
margin: 4px 8px;
|
||
|
}
|
||
|
|
||
|
/* ==================== 进度条 ==================== */
|
||
|
QProgressBar {
|
||
|
background-color: #ffffff;
|
||
|
border: 1px solid #bdc3c7;
|
||
|
border-radius: 8px;
|
||
|
text-align: center;
|
||
|
color: #2c3e50;
|
||
|
font-weight: bold;
|
||
|
}
|
||
|
|
||
|
QProgressBar::chunk {
|
||
|
background: qlineargradient(x1: 0, y1: 0, x2: 1, y2: 0,
|
||
|
stop: 0 #3498db, stop: 1 #2980b9);
|
||
|
border-radius: 7px;
|
||
|
margin: 1px;
|
||
|
}
|
||
|
|
||
|
/* ==================== 工具提示 ==================== */
|
||
|
QToolTip {
|
||
|
background-color: #ffffff;
|
||
|
color: #2c3e50;
|
||
|
border: 1px solid #3498db;
|
||
|
border-radius: 6px;
|
||
|
padding: 8px;
|
||
|
font-size: 9pt;
|
||
|
opacity: 240;
|
||
|
}
|
||
|
|
||
|
/* ==================== 分割器 ==================== */
|
||
|
QSplitter::handle {
|
||
|
background-color: #d5dbdb;
|
||
|
}
|
||
|
|
||
|
QSplitter::handle:horizontal {
|
||
|
width: 3px;
|
||
|
border-radius: 1px;
|
||
|
}
|
||
|
|
||
|
QSplitter::handle:vertical {
|
||
|
height: 3px;
|
||
|
border-radius: 1px;
|
||
|
}
|
||
|
|
||
|
QSplitter::handle:hover {
|
||
|
background-color: #3498db;
|
||
|
}
|
||
|
|
||
|
/* ==================== 特殊样式 ==================== */
|
||
|
/* 成功状态的行 */
|
||
|
QTableView::item[success="true"] {
|
||
|
background-color: rgba(46, 204, 113, 0.1);
|
||
|
color: #27ae60;
|
||
|
}
|
||
|
|
||
|
/* 失败状态的行 */
|
||
|
QTableView::item[success="false"] {
|
||
|
background-color: rgba(231, 76, 60, 0.1);
|
||
|
color: #e74c3c;
|
||
|
}
|
||
|
|
||
|
/* 主步骤样式 */
|
||
|
QTableView::item[main_step="true"] {
|
||
|
background-color: rgba(52, 152, 219, 0.1);
|
||
|
font-weight: bold;
|
||
|
}
|
||
|
|
||
|
/* 状态指示器 */
|
||
|
.status-success {
|
||
|
color: #27ae60;
|
||
|
font-weight: bold;
|
||
|
}
|
||
|
|
||
|
.status-error {
|
||
|
color: #e74c3c;
|
||
|
font-weight: bold;
|
||
|
}
|
||
|
|
||
|
.status-warning {
|
||
|
color: #f39c12;
|
||
|
font-weight: bold;
|
||
|
}
|
||
|
|
||
|
.status-info {
|
||
|
color: #3498db;
|
||
|
font-weight: bold;
|
||
|
}
|
||
|
|
||
|
/* ==================== 动画效果 ==================== */
|
||
|
QPushButton {
|
||
|
transition: all 0.3s ease;
|
||
|
}
|
||
|
|
||
|
QToolButton {
|
||
|
transition: all 0.3s ease;
|
||
|
}
|
||
|
|
||
|
QLineEdit {
|
||
|
transition: border-color 0.3s ease, background-color 0.3s ease;
|
||
|
}
|
||
|
|
||
|
QListWidget::item {
|
||
|
transition: background-color 0.2s ease, border-color 0.2s ease;
|
||
|
}
|
||
|
|
||
|
QTableView::item {
|
||
|
transition: background-color 0.2s ease;
|
||
|
}
|