MetaWhiz/scripts/style/dark_theme.qss
2025-04-17 13:00:39 +08:00

1061 lines
19 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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