/* * Tool Qt Style Sheet (QSS) * Dark Theme */ /* Global Styles */ QWidget { background-color: #1E1E1E; color: #E0E0E0; font-family: "Microsoft YaHei UI"; font-size: 9pt; } /* Button Styles */ QPushButton { background-color: #2D2D30; border: 1px solid #3F3F46; border-radius: 4px; padding: 5px 15px; min-height: 24px; color: #E0E0E0; } QPushButton:hover { background-color: #3E3E42; border-color: #007ACC; } QPushButton:pressed { background-color: #007ACC; color: #FFFFFF; } QPushButton:disabled { background-color: #2D2D30; color: #656565; border-color: #3F3F46; } /* Input Box Styles */ QLineEdit { background-color: #252526; border: 1px solid #3F3F46; border-radius: 4px; padding: 3px 8px; min-height: 24px; color: #E0E0E0; } QLineEdit:focus { border-color: #007ACC; } /* Combo Box Styles */ QComboBox { background-color: #252526; border: 1px solid #3F3F46; border-radius: 4px; padding: 3px 8px; min-height: 24px; color: #E0E0E0; } QComboBox:hover { border-color: #007ACC; } /* Qt-specific subcontrol for ComboBox dropdown button */ QComboBox::drop-down { width: 20px; border-left: 1px solid #3F3F46; border-top-right-radius: 4px; border-bottom-right-radius: 4px; /* Qt-specific properties for positioning the dropdown button */ subcontrol-origin: padding; subcontrol-position: center right; /* Standard CSS would use absolute positioning */ position: relative; } /* Qt-specific selector for ComboBox arrow */ QComboBox::down-arrow { width: 12px; height: 12px; /* Qt-specific property for displaying an image */ image: url(:/icons/down_arrow.png); /* Standard CSS would use background-image */ background-image: url(:/icons/down_arrow.png); background-position: center; background-repeat: no-repeat; background-size: contain; } /* Tab Widget Styles */ QTabWidget::pane { border: 1px solid #3F3F46; background-color: #1E1E1E; } QTabBar::tab { background-color: #2D2D30; border: 1px solid #3F3F46; border-bottom: none; border-top-left-radius: 4px; border-top-right-radius: 4px; padding: 6px 12px; color: #E0E0E0; min-width: 80px; } QTabBar::tab:selected { background-color: #007ACC; color: #FFFFFF; } QTabBar::tab:hover { background-color: #3E3E42; } /* Scroll Bar Styles */ QScrollBar:vertical { background-color: #1E1E1E; width: 12px; border-radius: 6px; margin: 0px; } QScrollBar::handle:vertical { background-color: #3E3E42; border-radius: 6px; min-height: 20px; } QScrollBar::handle:vertical:hover { background-color: #007ACC; } QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical { height: 0px; } QScrollBar:horizontal { background-color: #1E1E1E; height: 12px; border-radius: 6px; margin: 0px; } QScrollBar::handle:horizontal { background-color: #3E3E42; border-radius: 6px; min-width: 20px; } QScrollBar::handle:horizontal:hover { background-color: #007ACC; } QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal { width: 0px; } /* Menu Styles */ QMenuBar { background-color: #1E1E1E; border-bottom: 1px solid #3F3F46; color: #E0E0E0; } QMenuBar::item { background: transparent; padding: 6px 10px; } QMenuBar::item:selected { background-color: #3E3E42; color: #FFFFFF; } QMenu { background-color: #1E1E1E; border: 1px solid #3F3F46; padding: 2px; } QMenu::item { padding: 6px 25px 6px 20px; border-radius: 4px; margin: 2px; } QMenu::item:selected { background-color: #007ACC; color: #FFFFFF; } QMenu::separator { height: 1px; background-color: #3F3F46; margin: 4px 10px; } /* Tool Bar Styles */ /* QToolBar with spacing between items */ QToolBar { background-color: #1E1E1E; border-bottom: 1px solid #3F3F46; padding: 2px; /* Qt-specific property for spacing between toolbar items */ spacing: 4px; /* Standard CSS would use margins on child elements */ } QToolBar::separator { width: 1px; background-color: #3F3F46; margin: 4px 6px; } QToolButton { background-color: transparent; border: 1px solid transparent; border-radius: 4px; padding: 4px; } QToolButton:hover { background-color: #3E3E42; border-color: #3F3F46; } QToolButton:pressed { background-color: #007ACC; } /* Status Bar Styles */ QStatusBar { background-color: #1E1E1E; border-top: 1px solid #3F3F46; color: #E0E0E0; } QStatusBar::item { border: none; } /* List and Tree View Styles */ /* List and Tree widgets with alternating row colors */ QListWidget, QTreeWidget, QTableWidget { background-color: #252526; border: 1px solid #3F3F46; border-radius: 4px; /* Qt-specific property for alternating row colors */ alternate-background-color: #2D2D30; /* Standard CSS alternative would use :nth-child(even/odd) selectors */ } QListWidget::item, QTreeWidget::item, QTableWidget::item { padding: 4px; border-radius: 2px; } QListWidget::item:selected, QTreeWidget::item:selected, QTableWidget::item:selected { background-color: #007ACC; color: #FFFFFF; } QListWidget::item:hover, QTreeWidget::item:hover, QTableWidget::item:hover { background-color: #3E3E42; } /* Check Box Styles */ /* QCheckBox with spacing between text and indicator */ QCheckBox { /* Qt-specific property for spacing between text and indicator */ spacing: 8px; /* Standard CSS alternative */ margin-left: 2px; } QCheckBox::indicator { width: 16px; height: 16px; border: 1px solid #3F3F46; border-radius: 3px; background-color: #252526; } /* QCheckBox checked indicator with custom image */ QCheckBox::indicator:checked { background-color: #007ACC; /* Qt-specific property for displaying an image */ image: url(:/icons/check.png); /* Standard CSS alternative using content property with Unicode character */ content: "✓"; } QCheckBox::indicator:hover { border-color: #007ACC; } /* Radio Button Styles */ /* QRadioButton with spacing between text and indicator */ QRadioButton { /* Qt-specific property for spacing between text and indicator */ spacing: 8px; /* Standard CSS alternative */ margin-left: 2px; } QRadioButton::indicator { width: 16px; height: 16px; border: 1px solid #3F3F46; border-radius: 8px; background-color: #252526; } QRadioButton::indicator:checked { background-color: #007ACC; border: 4px solid #252526; } QRadioButton::indicator:hover { border-color: #007ACC; } /* Slider Styles */ QSlider::groove:horizontal { height: 4px; background-color: #3F3F46; border-radius: 2px; } QSlider::handle:horizontal { background-color: #007ACC; border: none; width: 16px; height: 16px; margin: -6px 0; border-radius: 8px; } QSlider::handle:horizontal:hover { background-color: #0090EA; } /* Group Box Styles */ QGroupBox { border: 1px solid #3F3F46; border-radius: 4px; margin-top: 12px; padding-top: 12px; } /* Qt-specific title positioning for GroupBox */ QGroupBox::title { /* Qt-specific properties for positioning the title */ subcontrol-origin: margin; subcontrol-position: top left; /* Standard CSS positioning properties */ left: 10px; padding: 0 5px; color: #007ACC; position: relative; } /* Progress Bar Styles */ QProgressBar { border: 1px solid #3F3F46; border-radius: 4px; background-color: #252526; text-align: center; color: #E0E0E0; } QProgressBar::chunk { background-color: #007ACC; border-radius: 3px; } /* Tooltip Styles */ QToolTip { background-color: #1E1E1E; border: 1px solid #3F3F46; color: #E0E0E0; padding: 4px; border-radius: 2px; } QMenuBar::item { background-color: transparent; padding: 6px 10px; } QMenuBar::item:selected { background-color: #3E3E40; color: #FFFFFF; } QMenuBar::item:pressed { background-color: #007ACC; color: #FFFFFF; } /* Menu */ QMenu { background-color: #1E1E1E; color: #FFFFFF; border: 1px solid #3F3F46; } QMenu::item { padding: 6px 20px 6px 20px; } QMenu::item:selected { background-color: #3E3E40; color: #FFFFFF; } QMenu::separator { height: 1px; background-color: #3F3F46; margin: 4px 0px; } /* Tab Widget */ QTabWidget { background-color: #2D2D30; } QTabWidget::pane { border: 1px solid #3F3F46; background-color: #2D2D30; } QTabBar::tab { background-color: #252526; color: #CCCCCC; padding: 8px 16px; border-top-left-radius: 4px; border-top-right-radius: 4px; border: 1px solid #3F3F46; border-bottom: none; min-width: 80px; } QTabBar::tab:selected { background-color: #2D2D30; color: #FFFFFF; border-bottom: 2px solid #007ACC; } QTabBar::tab:hover { background-color: #3E3E40; } QTabBar::tab:selected:hover { background-color: #2D2D30; } /* 移除不兼容的 :!selected 选择器,使用标准选择器组合 */ /* Push Button */ QPushButton { background-color: #0E639C; color: #FFFFFF; border: none; border-radius: 3px; padding: 6px 16px; min-width: 80px; font-weight: bold; } QPushButton:hover { background-color: #1177BB; } QPushButton:pressed { background-color: #0D5C91; } QPushButton:disabled { background-color: #3F3F46; color: #999999; } /* Tool Button */ QToolButton { background-color: #2D2D30; color: #FFFFFF; border: 1px solid #3F3F46; border-radius: 3px; padding: 3px; } QToolButton:hover { background-color: #3E3E40; } QToolButton:pressed { background-color: #007ACC; } /* Line Edit */ QLineEdit { background-color: #1E1E1E; color: #FFFFFF; border: 1px solid #3F3F46; border-radius: 3px; padding: 4px; } /* Using standard selection style for better compatibility */ QLineEdit::selection { background-color: #264F78; color: #FFFFFF; } QLineEdit:focus { border: 1px solid #007ACC; } /* Combo Box */ QComboBox { background-color: #1E1E1E; color: #FFFFFF; border: 1px solid #3F3F46; border-radius: 3px; padding: 4px 8px; min-width: 100px; } QComboBox::drop-down { width: 20px; border-left: 1px solid #3F3F46; background-color: #2D2D30; } QComboBox::down-arrow { width: 12px; height: 12px; /* 使用内置箭头符号代替图片 */ color: #CCCCCC; /* 不使用image属性,避免警告 */ } QComboBox QAbstractItemView { background-color: #1E1E1E; color: #FFFFFF; border: 1px solid #3F3F46; } /* Spin Box */ QSpinBox, QDoubleSpinBox { background-color: #1E1E1E; color: #FFFFFF; border: 1px solid #3F3F46; border-radius: 3px; padding: 4px; } QSpinBox::up-button, QDoubleSpinBox::up-button { width: 16px; border-left: 1px solid #3F3F46; background-color: #2D2D30; } QSpinBox::down-button, QDoubleSpinBox::down-button { width: 16px; border-left: 1px solid #3F3F46; background-color: #2D2D30; } /* Slider */ QSlider::groove:horizontal { border: 1px solid #3F3F46; height: 8px; background: #1E1E1E; margin: 2px 0; border-radius: 4px; } QSlider::handle:horizontal { background: #007ACC; border: 1px solid #007ACC; width: 18px; height: 18px; margin: -6px 0; border-radius: 9px; } QSlider::handle:horizontal:hover { background: #1177BB; } /* Check Box */ QCheckBox { margin-right: 8px; } QCheckBox::indicator { width: 16px; height: 16px; border: 1px solid #3F3F46; border-radius: 3px; background-color: #1E1E1E; } QCheckBox::indicator:checked { background-color: #007ACC; border: 1px solid #007ACC; } /* 使用标准选择器语法,避免使用:!checked */ QCheckBox::indicator:hover { border: 1px solid #007ACC; } /* Radio Button */ QRadioButton { margin-right: 8px; } QRadioButton::indicator { width: 16px; height: 16px; border: 1px solid #3F3F46; border-radius: 8px; background-color: #1E1E1E; } QRadioButton::indicator:checked { background-color: #007ACC; border: 1px solid #007ACC; } /* 使用标准选择器语法,避免使用:!checked */ QRadioButton::indicator:hover { border: 1px solid #007ACC; } /* Group Box */ QGroupBox { border: 1px solid #3F3F46; border-radius: 4px; margin-top: 20px; padding-top: 24px; font-weight: bold; } QGroupBox::title { padding: 4px 8px; color: #FFFFFF; } /* Scroll Bar */ QScrollBar:vertical { border: none; background: #2D2D30; width: 12px; margin: 0px; } QScrollBar::handle:vertical { background: #3F3F46; min-height: 20px; border-radius: 6px; } QScrollBar::handle:vertical:hover { background: #555555; } QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical { height: 0px; } QScrollBar:horizontal { border: none; background: #2D2D30; height: 12px; margin: 0px; } QScrollBar::handle:horizontal { background: #3F3F46; min-width: 20px; border-radius: 6px; } QScrollBar::handle:horizontal:hover { background: #555555; } QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal { width: 0px; } /* Progress Bar */ QProgressBar { border: 1px solid #3F3F46; border-radius: 3px; background-color: #1E1E1E; text-align: center; color: #FFFFFF; } QProgressBar::chunk { background-color: #007ACC; width: 10px; } /* Status Bar */ QStatusBar { background-color: #1E1E1E; color: #FFFFFF; border-top: 1px solid #3F3F46; } /* Table View */ QTableView { background-color: #1E1E1E; color: #FFFFFF; border: 1px solid #3F3F46; } QTableView QHeaderView { background-color: #2D2D30; color: #FFFFFF; border: none; border-bottom: 1px solid #3F3F46; } QTableView QHeaderView::section { background-color: #2D2D30; color: #FFFFFF; padding: 4px; border: 1px solid #3F3F46; border-top: none; border-left: none; } QTableView QHeaderView::section:first { border-left: 1px solid #3F3F46; } /* List View */ QListView { background-color: #1E1E1E; color: #FFFFFF; border: 1px solid #3F3F46; } /* Tree View */ QTreeView { background-color: #1E1E1E; color: #FFFFFF; border: 1px solid #3F3F46; } /* Dock Widget */ QDockWidget { background-color: #2D2D30; color: #FFFFFF; } QDockWidget::title { text-align: center; background-color: #1E1E1E; color: #FFFFFF; padding: 6px; } /* Tool Tip */ QToolTip { background-color: #2D2D30; color: #FFFFFF; border: 1px solid #3F3F46; padding: 6px 8px; font-size: 11px; } /* Splitter */ QSplitter::handle { background-color: #3F3F46; } QSplitter::handle:horizontal { width: 1px; } QSplitter::handle:vertical { height: 1px; } QSplitter::handle:hover { background-color: #007ACC; } /* Frame */ QFrame { border: 1px solid #3F3F46; border-radius: 3px; } /* Label */ QLabel { color: #FFFFFF; } /* Text Edit */ QTextEdit { background-color: #1E1E1E; color: #FFFFFF; border: 1px solid #3F3F46; } /* Plain Text Edit */ QPlainTextEdit { background-color: #1E1E1E; color: #FFFFFF; border: 1px solid #3F3F46; } /* Dialog Buttons */ QDialogButtonBox { background-color: #2D2D30; padding: 8px; border-top: 1px solid #3F3F46; } /* Calendar Widget */ QCalendarWidget QToolButton { color: #FFFFFF; background-color: transparent; border: none; } QCalendarWidget QMenu { background-color: #1E1E1E; color: #FFFFFF; } QCalendarWidget QSpinBox { background-color: #1E1E1E; color: #FFFFFF; } QCalendarWidget QTableView { background-color: #2D2D30; } /* Tool Box */ QToolBox::tab { background-color: #2D2D30; color: #FFFFFF; border: 1px solid #3F3F46; border-radius: 3px; padding: 4px; } QToolBox::tab:selected { background-color: #3E3E40; color: #FFFFFF; } /* Scroll Area */ QScrollArea { background-color: transparent; border: none; } /* Scroll Bar */ QScrollBar:vertical { background-color: #1E1E1E; width: 14px; margin: 0px; } QScrollBar::handle:vertical { background-color: #3E3E40; min-height: 20px; border-radius: 4px; margin: 2px; } QScrollBar::handle:vertical:hover { background-color: #505050; } QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical { height: 0px; } QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { background-color: #1E1E1E; } QScrollBar:horizontal { background-color: #1E1E1E; height: 14px; margin: 0px; } QScrollBar::handle:horizontal { background-color: #3E3E40; min-width: 20px; border-radius: 4px; margin: 2px; } QScrollBar::handle:horizontal:hover { background-color: #505050; } QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal { width: 0px; } QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { background-color: #1E1E1E; } /* Focus */ *:focus { outline: none; } /* Custom Widgets */ #ToolLogo { background-color: transparent; border: none; } #welcomeLabel { font-size: 18pt; font-weight: bold; color: #FFFFFF; } #versionLabel { font-size: 10pt; color: #CCCCCC; } #headerFrame { background-color: #1E1E1E; border: none; border-bottom: 1px solid #3F3F46; } #footerFrame { background-color: #1E1E1E; border: none; border-top: 1px solid #3F3F46; } #sidePanel { background-color: #252526; border-right: 1px solid #3F3F46; } #actionButton { background-color: #0E639C; color: #FFFFFF; border: none; border-radius: 3px; padding: 8px 16px; font-weight: bold; } #actionButton:hover { background-color: #1177BB; } #actionButton:pressed { background-color: #0D5C91; } #dangerButton { background-color: #A1260D; color: #FFFFFF; } #dangerButton:hover { background-color: #C42B1C; } #dangerButton:pressed { background-color: #891E0D; } #successButton { background-color: #107C10; color: #FFFFFF; } #successButton:hover { background-color: #218721; } #successButton:pressed { background-color: #0E6A0E; } #warningButton { background-color: #C19C00; color: #FFFFFF; } #warningButton:hover { background-color: #D2AC1C; } #warningButton:pressed { background-color: #A38400; } #infoLabel { color: #007ACC; font-weight: bold; } #errorLabel { color: #A1260D; font-weight: bold; } #successLabel { color: #107C10; font-weight: bold; } #warningLabel { color: #C19C00; font-weight: bold; } #titleLabel { font-size: 14pt; font-weight: bold; color: #FFFFFF; } #subtitleLabel { font-size: 12pt; color: #CCCCCC; } #separatorLine { background-color: #3F3F46; border: none; } #transparentWidget { background-color: transparent; border: none; }