|
|
|
|
@ -153,69 +153,99 @@ class ThemeManager(QObject):
|
|
|
|
|
return self._get_light_stylesheet()
|
|
|
|
|
|
|
|
|
|
def _get_dark_stylesheet(self):
|
|
|
|
|
"""深色主题样式表"""
|
|
|
|
|
"""深色主题样式表 - Apple设计风格"""
|
|
|
|
|
return """
|
|
|
|
|
/* 深色主题样式 */
|
|
|
|
|
/* Apple设计风格深色主题样式 */
|
|
|
|
|
|
|
|
|
|
/* 全局文字颜色 */
|
|
|
|
|
/* 全局文字颜色和字体 - 使用Apple系统字体 */
|
|
|
|
|
QWidget {
|
|
|
|
|
color: #e0e0e0;
|
|
|
|
|
color: #f0f0f0;
|
|
|
|
|
font-family: '-apple-system', 'BlinkMacSystemFont', 'Segoe UI', 'Helvetica Neue', 'Helvetica', 'Arial', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', '微软雅黑', sans-serif;
|
|
|
|
|
font-size: 13px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 主窗口 */
|
|
|
|
|
/* 主窗口 - Apple深色背景 */
|
|
|
|
|
QMainWindow {
|
|
|
|
|
background-color: #1e1e1e;
|
|
|
|
|
background-color: #2c2c2e;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 菜单栏 */
|
|
|
|
|
/* 菜单栏 - Apple深色风格 */
|
|
|
|
|
QMenuBar {
|
|
|
|
|
background-color: #0078d7;
|
|
|
|
|
border: 1px solid #005a9e;
|
|
|
|
|
font-size: 12px;
|
|
|
|
|
color: #ffffff;
|
|
|
|
|
background-color: #2c2c2e;
|
|
|
|
|
border: none;
|
|
|
|
|
border-bottom: 1px solid #404040;
|
|
|
|
|
font-size: 13px;
|
|
|
|
|
color: #f0f0f0;
|
|
|
|
|
padding: 4px 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QMenuBar::item {
|
|
|
|
|
background-color: transparent;
|
|
|
|
|
padding: 4px 10px;
|
|
|
|
|
color: #e0e0e0;
|
|
|
|
|
padding: 6px 12px;
|
|
|
|
|
color: #f0f0f0;
|
|
|
|
|
border-radius: 4px;
|
|
|
|
|
margin: 0 1px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QMenuBar::item:selected {
|
|
|
|
|
background-color: #106ebe;
|
|
|
|
|
background-color: #404040;
|
|
|
|
|
color: #f0f0f0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 菜单 */
|
|
|
|
|
QMenuBar::item:pressed {
|
|
|
|
|
background-color: #505050;
|
|
|
|
|
color: #f0f0f0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 菜单 - Apple深色风格 */
|
|
|
|
|
QMenu {
|
|
|
|
|
background-color: #2d2d2d;
|
|
|
|
|
border: 1px solid #3c3c3c;
|
|
|
|
|
font-size: 12px;
|
|
|
|
|
color: #e0e0e0;
|
|
|
|
|
background-color: #2c2c2e;
|
|
|
|
|
border: 1px solid #404040;
|
|
|
|
|
border-radius: 8px;
|
|
|
|
|
font-size: 13px;
|
|
|
|
|
color: #f0f0f0;
|
|
|
|
|
padding: 4px 0;
|
|
|
|
|
margin: 2px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QMenu::item {
|
|
|
|
|
color: #f0f0f0;
|
|
|
|
|
background-color: transparent;
|
|
|
|
|
border-radius: 4px;
|
|
|
|
|
margin: 0 4px;
|
|
|
|
|
padding: 4px 20px;
|
|
|
|
|
color: #e0e0e0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QMenu::item:selected {
|
|
|
|
|
background-color: #3c3c3c;
|
|
|
|
|
background-color: #0a84ff;
|
|
|
|
|
color: #ffffff;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QMenu::item:pressed {
|
|
|
|
|
background-color: #0066cc;
|
|
|
|
|
color: #ffffff;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QMenu::separator {
|
|
|
|
|
height: 1px;
|
|
|
|
|
background-color: #404040;
|
|
|
|
|
margin: 4px 8px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 功能区 */
|
|
|
|
|
QFrame {
|
|
|
|
|
background-color: #2d2d2d;
|
|
|
|
|
border: 1px solid #3c3c3c;
|
|
|
|
|
background-color: #2c2c2e;
|
|
|
|
|
border: none;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 组框 */
|
|
|
|
|
QGroupBox {
|
|
|
|
|
font-size: 11px;
|
|
|
|
|
font-size: 12px;
|
|
|
|
|
font-weight: normal;
|
|
|
|
|
color: #e0e0e0;
|
|
|
|
|
background-color: #2d2d2d;
|
|
|
|
|
border: 1px solid #3c3c3c;
|
|
|
|
|
border-radius: 0px;
|
|
|
|
|
color: #f0f0f0;
|
|
|
|
|
background-color: #2c2c2e;
|
|
|
|
|
border: none;
|
|
|
|
|
border-radius: 8px;
|
|
|
|
|
margin-top: 5px;
|
|
|
|
|
padding-top: 5px;
|
|
|
|
|
}
|
|
|
|
|
@ -224,250 +254,319 @@ class ThemeManager(QObject):
|
|
|
|
|
subcontrol-origin: margin;
|
|
|
|
|
left: 10px;
|
|
|
|
|
padding: 0 5px 0 5px;
|
|
|
|
|
color: #e0e0e0;
|
|
|
|
|
color: #a0a0a0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 按钮 */
|
|
|
|
|
/* 工具按钮 - Apple深色风格 */
|
|
|
|
|
QToolButton {
|
|
|
|
|
border: 1px solid #3c3c3c;
|
|
|
|
|
border-radius: 3px;
|
|
|
|
|
background-color: #3c3c3c;
|
|
|
|
|
font-size: 11px;
|
|
|
|
|
color: #e0e0e0;
|
|
|
|
|
padding: 3px 6px;
|
|
|
|
|
border: 1px solid transparent;
|
|
|
|
|
border-radius: 6px;
|
|
|
|
|
background-color: #3a3a3c;
|
|
|
|
|
font-size: 13px;
|
|
|
|
|
color: #f0f0f0;
|
|
|
|
|
padding: 6px 12px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QToolButton:hover {
|
|
|
|
|
background-color: #4a4a4a;
|
|
|
|
|
border: 1px solid #5a5a5a;
|
|
|
|
|
background-color: #4a4a4c;
|
|
|
|
|
border: 1px solid #5a5a5c;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QToolButton:pressed {
|
|
|
|
|
background-color: #2a2a2a;
|
|
|
|
|
border: 1px solid #1a1a1a;
|
|
|
|
|
background-color: #5a5a5c;
|
|
|
|
|
border: 1px solid #6a6a6c;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QToolButton:checked {
|
|
|
|
|
background-color: #0078d4;
|
|
|
|
|
border: 1px solid #106ebe;
|
|
|
|
|
background-color: #0a84ff;
|
|
|
|
|
border: 1px solid #0a84ff;
|
|
|
|
|
color: #ffffff;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 切换按钮 */
|
|
|
|
|
QToolButton[checkable="true"] {
|
|
|
|
|
border: 1px solid #3c3c3c;
|
|
|
|
|
border-radius: 2px;
|
|
|
|
|
background-color: #3c3c3c;
|
|
|
|
|
border: 1px solid #4a4a4c;
|
|
|
|
|
border-radius: 6px;
|
|
|
|
|
background-color: #3a3a3c;
|
|
|
|
|
font-size: 12px;
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
color: #e0e0e0;
|
|
|
|
|
color: #f0f0f0;
|
|
|
|
|
padding: 6px 12px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QToolButton[checkable="true"]:hover {
|
|
|
|
|
background-color: #4a4a4a;
|
|
|
|
|
background-color: #4a4a4c;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QToolButton[checkable="true"]:checked {
|
|
|
|
|
background-color: #0078d4;
|
|
|
|
|
border: 1px solid #106ebe;
|
|
|
|
|
background-color: #0a84ff;
|
|
|
|
|
border: 1px solid #0a84ff;
|
|
|
|
|
color: #ffffff;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 下拉框 - 修复文字不可见问题 */
|
|
|
|
|
/* 下拉框 - Apple深色风格 */
|
|
|
|
|
QComboBox {
|
|
|
|
|
background-color: #3c3c3c;
|
|
|
|
|
border: 1px solid #5a5a5a;
|
|
|
|
|
border-radius: 2px;
|
|
|
|
|
color: #e0e0e0;
|
|
|
|
|
padding: 2px 5px;
|
|
|
|
|
selection-background-color: #4a4a4a;
|
|
|
|
|
selection-color: #e0e0e0;
|
|
|
|
|
background-color: #3a3a3c;
|
|
|
|
|
border: 1px solid #4a4a4c;
|
|
|
|
|
border-radius: 6px;
|
|
|
|
|
color: #f0f0f0;
|
|
|
|
|
padding: 4px 8px;
|
|
|
|
|
selection-background-color: #0a84ff;
|
|
|
|
|
selection-color: #ffffff;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QComboBox:hover {
|
|
|
|
|
background-color: #4a4a4a;
|
|
|
|
|
border: 1px solid #6a6a6a;
|
|
|
|
|
background-color: #4a4a4c;
|
|
|
|
|
border: 1px solid #5a5a5c;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QComboBox::drop-down {
|
|
|
|
|
border: none;
|
|
|
|
|
width: 15px;
|
|
|
|
|
background-color: #3c3c3c;
|
|
|
|
|
width: 20px;
|
|
|
|
|
border-left: 1px solid #4a4a4c;
|
|
|
|
|
border-top-right-radius: 6px;
|
|
|
|
|
border-bottom-right-radius: 6px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QComboBox::down-arrow {
|
|
|
|
|
image: none;
|
|
|
|
|
border-left: 3px solid transparent;
|
|
|
|
|
border-right: 3px solid transparent;
|
|
|
|
|
border-top: 5px solid #e0e0e0;
|
|
|
|
|
border-left: 4px solid transparent;
|
|
|
|
|
border-right: 4px solid transparent;
|
|
|
|
|
border-top: 6px solid #a0a0a0;
|
|
|
|
|
margin: 6px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 下拉框弹出列表 */
|
|
|
|
|
QComboBox QAbstractItemView {
|
|
|
|
|
background-color: #3c3c3c;
|
|
|
|
|
border: 1px solid #5a5a5a;
|
|
|
|
|
color: #e0e0e0;
|
|
|
|
|
selection-background-color: #4a4a4a;
|
|
|
|
|
selection-color: #e0e0e0;
|
|
|
|
|
background-color: #2c2c2e;
|
|
|
|
|
border: 1px solid #4a4a4c;
|
|
|
|
|
color: #f0f0f0;
|
|
|
|
|
selection-background-color: #0a84ff;
|
|
|
|
|
selection-color: #ffffff;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 字体下拉框特殊处理 */
|
|
|
|
|
QFontComboBox {
|
|
|
|
|
background-color: #3c3c3c;
|
|
|
|
|
border: 1px solid #5a5a5a;
|
|
|
|
|
border-radius: 2px;
|
|
|
|
|
color: #e0e0e0;
|
|
|
|
|
padding: 2px 5px;
|
|
|
|
|
selection-background-color: #4a4a4a;
|
|
|
|
|
selection-color: #e0e0e0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QFontComboBox:hover {
|
|
|
|
|
background-color: #4a4a4a;
|
|
|
|
|
border: 1px solid #6a6a6a;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QFontComboBox QAbstractItemView {
|
|
|
|
|
background-color: #3c3c3c;
|
|
|
|
|
border: 1px solid #5a5a5a;
|
|
|
|
|
color: #e0e0e0;
|
|
|
|
|
selection-background-color: #4a4a4a;
|
|
|
|
|
selection-color: #e0e0e0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 文本编辑器 */
|
|
|
|
|
/* 文本编辑区域 - Apple深色风格 */
|
|
|
|
|
QTextEdit {
|
|
|
|
|
background-color: #1e1e1e;
|
|
|
|
|
border: 1px solid #3c3c3c;
|
|
|
|
|
color: #e0e0e0;
|
|
|
|
|
padding: 20px;
|
|
|
|
|
background-color: #1c1c1e;
|
|
|
|
|
border: none;
|
|
|
|
|
font-family: '-apple-system', 'BlinkMacSystemFont', 'Segoe UI', 'Helvetica Neue', 'Helvetica', 'Arial', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', '微软雅黑', sans-serif;
|
|
|
|
|
font-size: 15px;
|
|
|
|
|
color: #f0f0f0;
|
|
|
|
|
padding: 32px;
|
|
|
|
|
line-height: 1.5;
|
|
|
|
|
selection-background-color: #0066cc;
|
|
|
|
|
selection-color: #ffffff;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 状态栏 */
|
|
|
|
|
/* 状态栏 - Apple深色风格 */
|
|
|
|
|
QStatusBar {
|
|
|
|
|
background-color: #2d2d2d;
|
|
|
|
|
border-top: 1px solid #3c3c3c;
|
|
|
|
|
font-size: 11px;
|
|
|
|
|
color: #e0e0e0;
|
|
|
|
|
background-color: #3a3a3c;
|
|
|
|
|
border-top: 1px solid #4a4a4c;
|
|
|
|
|
font-size: 12px;
|
|
|
|
|
color: #a0a0a0;
|
|
|
|
|
font-family: '-apple-system', 'BlinkMacSystemFont', 'Segoe UI', 'Helvetica Neue', 'Helvetica', 'Arial', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', '微软雅黑', sans-serif;
|
|
|
|
|
padding: 6px 12px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 标签 */
|
|
|
|
|
QLabel {
|
|
|
|
|
color: #e0e0e0;
|
|
|
|
|
color: #f0f0f0;
|
|
|
|
|
background-color: transparent;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 消息框 - 修复黑色背景问题 */
|
|
|
|
|
/* 消息框 - Apple深色风格 */
|
|
|
|
|
QMessageBox {
|
|
|
|
|
background-color: #2d2d2d;
|
|
|
|
|
color: #e0e0e0;
|
|
|
|
|
background-color: #2c2c2e;
|
|
|
|
|
color: #f0f0f0;
|
|
|
|
|
border-radius: 12px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QMessageBox QPushButton {
|
|
|
|
|
background-color: #3c3c3c;
|
|
|
|
|
color: #e0e0e0;
|
|
|
|
|
border: 1px solid #5a5a5a;
|
|
|
|
|
border-radius: 3px;
|
|
|
|
|
padding: 5px 15px;
|
|
|
|
|
background-color: #3a3a3c;
|
|
|
|
|
color: #f0f0f0;
|
|
|
|
|
border: 1px solid #4a4a4c;
|
|
|
|
|
border-radius: 6px;
|
|
|
|
|
padding: 6px 16px;
|
|
|
|
|
min-width: 80px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QMessageBox QPushButton:hover {
|
|
|
|
|
background-color: #4a4a4a;
|
|
|
|
|
border: 1px solid #6a6a6a;
|
|
|
|
|
background-color: #4a4a4c;
|
|
|
|
|
border: 1px solid #5a5a5c;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QMessageBox QPushButton:pressed {
|
|
|
|
|
background-color: #2a2a2a;
|
|
|
|
|
border: 1px solid #1a1a1a;
|
|
|
|
|
background-color: #5a5a5c;
|
|
|
|
|
border: 1px solid #6a6a6c;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QMessageBox QPushButton:default {
|
|
|
|
|
background-color: #0a84ff;
|
|
|
|
|
color: #ffffff;
|
|
|
|
|
border: 1px solid #0a84ff;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QMessageBox QPushButton:default:hover {
|
|
|
|
|
background-color: #0066cc;
|
|
|
|
|
border: 1px solid #0066cc;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QMessageBox QPushButton:default:pressed {
|
|
|
|
|
background-color: #004d99;
|
|
|
|
|
border: 1px solid #004d99;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 滚动条 */
|
|
|
|
|
/* 滚动条 - Apple深色风格 */
|
|
|
|
|
QScrollBar:vertical {
|
|
|
|
|
background-color: #2d2d2d;
|
|
|
|
|
width: 12px;
|
|
|
|
|
background-color: transparent;
|
|
|
|
|
width: 8px;
|
|
|
|
|
border: none;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QScrollBar::handle:vertical {
|
|
|
|
|
background-color: #5a5a5a;
|
|
|
|
|
border-radius: 6px;
|
|
|
|
|
background-color: #5a5a5c;
|
|
|
|
|
border-radius: 4px;
|
|
|
|
|
min-height: 20px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QScrollBar::handle:vertical:hover {
|
|
|
|
|
background-color: #6a6a6a;
|
|
|
|
|
background-color: #6a6a6c;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical {
|
|
|
|
|
border: none;
|
|
|
|
|
background: none;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 按钮 - Apple深色风格 */
|
|
|
|
|
QPushButton {
|
|
|
|
|
background-color: #3a3a3c;
|
|
|
|
|
color: #f0f0f0;
|
|
|
|
|
border: 1px solid #4a4a4c;
|
|
|
|
|
border-radius: 6px;
|
|
|
|
|
padding: 6px 16px;
|
|
|
|
|
font-size: 13px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QPushButton:hover {
|
|
|
|
|
background-color: #4a4a4c;
|
|
|
|
|
border: 1px solid #5a5a5c;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QPushButton:pressed {
|
|
|
|
|
background-color: #5a5a5c;
|
|
|
|
|
border: 1px solid #6a6a6c;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QPushButton:default {
|
|
|
|
|
background-color: #0a84ff;
|
|
|
|
|
color: #ffffff;
|
|
|
|
|
border: 1px solid #0a84ff;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QPushButton:default:hover {
|
|
|
|
|
background-color: #0066cc;
|
|
|
|
|
border: 1px solid #0066cc;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QPushButton:default:pressed {
|
|
|
|
|
background-color: #004d99;
|
|
|
|
|
border: 1px solid #004d99;
|
|
|
|
|
}
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
def _get_light_stylesheet(self):
|
|
|
|
|
"""浅色主题样式表 - 白底黑字"""
|
|
|
|
|
"""浅色主题样式表 - Apple设计风格"""
|
|
|
|
|
return """
|
|
|
|
|
/* 浅色主题样式 - 白底黑字 */
|
|
|
|
|
/* Apple设计风格浅色主题样式 */
|
|
|
|
|
|
|
|
|
|
/* 全局文字颜色 */
|
|
|
|
|
/* 全局文字颜色和字体 - 使用Apple系统字体 */
|
|
|
|
|
QWidget {
|
|
|
|
|
color: #333333;
|
|
|
|
|
font-family: '-apple-system', 'BlinkMacSystemFont', 'Segoe UI', 'Helvetica Neue', 'Helvetica', 'Arial', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', '微软雅黑', sans-serif;
|
|
|
|
|
font-size: 13px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 主窗口 */
|
|
|
|
|
/* 主窗口 - 纯净白色背景 */
|
|
|
|
|
QMainWindow {
|
|
|
|
|
background-color: #f3f2f1;
|
|
|
|
|
background-color: #ffffff;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 菜单栏 */
|
|
|
|
|
/* 菜单栏 - Apple风格 */
|
|
|
|
|
QMenuBar {
|
|
|
|
|
background-color: #0078d7;
|
|
|
|
|
border: 1px solid #005a9e;
|
|
|
|
|
font-size: 12px;
|
|
|
|
|
color: #ffffff;
|
|
|
|
|
background-color: #ffffff;
|
|
|
|
|
border: none;
|
|
|
|
|
border-bottom: 1px solid #e0e0e0;
|
|
|
|
|
font-size: 13px;
|
|
|
|
|
color: #333333;
|
|
|
|
|
padding: 4px 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QMenuBar::item {
|
|
|
|
|
background-color: transparent;
|
|
|
|
|
padding: 4px 10px;
|
|
|
|
|
padding: 6px 12px;
|
|
|
|
|
color: #333333;
|
|
|
|
|
border-radius: 4px;
|
|
|
|
|
margin: 0 1px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QMenuBar::item:selected {
|
|
|
|
|
background-color: #106ebe;
|
|
|
|
|
background-color: #f0f0f0;
|
|
|
|
|
color: #333333;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 菜单 */
|
|
|
|
|
QMenuBar::item:pressed {
|
|
|
|
|
background-color: #e0e0e0;
|
|
|
|
|
color: #333333;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 菜单 - Apple风格 */
|
|
|
|
|
QMenu {
|
|
|
|
|
background-color: #ffffff;
|
|
|
|
|
border: 1px solid #d0d0d0;
|
|
|
|
|
font-size: 12px;
|
|
|
|
|
border-radius: 8px;
|
|
|
|
|
font-size: 13px;
|
|
|
|
|
color: #333333;
|
|
|
|
|
padding: 4px 0;
|
|
|
|
|
margin: 2px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QMenu::item {
|
|
|
|
|
padding: 4px 20px;
|
|
|
|
|
color: #333333;
|
|
|
|
|
background-color: transparent;
|
|
|
|
|
border-radius: 4px;
|
|
|
|
|
margin: 0 4px;
|
|
|
|
|
padding: 4px 20px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QMenu::item:selected {
|
|
|
|
|
background-color: #f0f0f0;
|
|
|
|
|
background-color: #007aff;
|
|
|
|
|
color: #ffffff;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QMenu::item:pressed {
|
|
|
|
|
background-color: #0062cc;
|
|
|
|
|
color: #ffffff;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QMenu::separator {
|
|
|
|
|
height: 1px;
|
|
|
|
|
background-color: #e0e0e0;
|
|
|
|
|
margin: 4px 8px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 功能区 */
|
|
|
|
|
QFrame {
|
|
|
|
|
background-color: #ffffff;
|
|
|
|
|
border: 1px solid #d0d0d0;
|
|
|
|
|
border: none;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 组框 */
|
|
|
|
|
QGroupBox {
|
|
|
|
|
font-size: 11px;
|
|
|
|
|
font-size: 12px;
|
|
|
|
|
font-weight: normal;
|
|
|
|
|
color: #333333;
|
|
|
|
|
background-color: #ffffff;
|
|
|
|
|
border: 1px solid #d0d0d0;
|
|
|
|
|
border-radius: 0px;
|
|
|
|
|
border: none;
|
|
|
|
|
border-radius: 8px;
|
|
|
|
|
margin-top: 5px;
|
|
|
|
|
padding-top: 5px;
|
|
|
|
|
}
|
|
|
|
|
@ -476,145 +575,116 @@ class ThemeManager(QObject):
|
|
|
|
|
subcontrol-origin: margin;
|
|
|
|
|
left: 10px;
|
|
|
|
|
padding: 0 5px 0 5px;
|
|
|
|
|
color: #333333;
|
|
|
|
|
color: #666666;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 按钮 */
|
|
|
|
|
/* 工具按钮 - Apple风格 */
|
|
|
|
|
QToolButton {
|
|
|
|
|
border: 1px solid #d0d0d0;
|
|
|
|
|
border-radius: 3px;
|
|
|
|
|
background-color: #ffffff;
|
|
|
|
|
font-size: 11px;
|
|
|
|
|
border: 1px solid transparent;
|
|
|
|
|
border-radius: 6px;
|
|
|
|
|
background-color: #f6f6f6;
|
|
|
|
|
font-size: 13px;
|
|
|
|
|
color: #333333;
|
|
|
|
|
padding: 3px 6px;
|
|
|
|
|
padding: 6px 12px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QToolButton:hover {
|
|
|
|
|
background-color: #f0f0f0;
|
|
|
|
|
border: 1px solid #0078d7;
|
|
|
|
|
background-color: #e0e0e0;
|
|
|
|
|
border: 1px solid #d0d0d0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QToolButton:pressed {
|
|
|
|
|
background-color: #e0e0e0;
|
|
|
|
|
border: 1px solid #005a9e;
|
|
|
|
|
background-color: #d0d0d0;
|
|
|
|
|
border: 1px solid #c0c0c0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QToolButton:checked {
|
|
|
|
|
background-color: #0078d7;
|
|
|
|
|
border: 1px solid #005a9e;
|
|
|
|
|
background-color: #007aff;
|
|
|
|
|
border: 1px solid #007aff;
|
|
|
|
|
color: #ffffff;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 切换按钮 */
|
|
|
|
|
QToolButton[checkable="true"] {
|
|
|
|
|
border: 1px solid #d0d0d0;
|
|
|
|
|
border-radius: 2px;
|
|
|
|
|
background-color: #ffffff;
|
|
|
|
|
border-radius: 6px;
|
|
|
|
|
background-color: #f6f6f6;
|
|
|
|
|
font-size: 12px;
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
color: #333333;
|
|
|
|
|
padding: 6px 12px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QToolButton[checkable="true"]:hover {
|
|
|
|
|
background-color: #f0f0f0;
|
|
|
|
|
background-color: #e0e0e0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QToolButton[checkable="true"]:checked {
|
|
|
|
|
background-color: #0078d7;
|
|
|
|
|
border: 1px solid #005a9e;
|
|
|
|
|
background-color: #007aff;
|
|
|
|
|
border: 1px solid #007aff;
|
|
|
|
|
color: #ffffff;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 下拉框 - 白底黑字 */
|
|
|
|
|
/* 下拉框 - Apple风格 */
|
|
|
|
|
QComboBox {
|
|
|
|
|
background-color: #ffffff;
|
|
|
|
|
background-color: #f6f6f6;
|
|
|
|
|
border: 1px solid #d0d0d0;
|
|
|
|
|
border-radius: 2px;
|
|
|
|
|
border-radius: 6px;
|
|
|
|
|
color: #333333;
|
|
|
|
|
padding: 2px 5px;
|
|
|
|
|
selection-background-color: #f0f0f0;
|
|
|
|
|
selection-color: #333333;
|
|
|
|
|
padding: 4px 8px;
|
|
|
|
|
selection-background-color: #007aff;
|
|
|
|
|
selection-color: #ffffff;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QComboBox:hover {
|
|
|
|
|
background-color: #f0f0f0;
|
|
|
|
|
border: 1px solid #0078d7;
|
|
|
|
|
background-color: #e0e0e0;
|
|
|
|
|
border: 1px solid #c0c0c0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QComboBox::drop-down {
|
|
|
|
|
border: none;
|
|
|
|
|
width: 15px;
|
|
|
|
|
background-color: #ffffff;
|
|
|
|
|
width: 20px;
|
|
|
|
|
border-left: 1px solid #d0d0d0;
|
|
|
|
|
border-top-right-radius: 6px;
|
|
|
|
|
border-bottom-right-radius: 6px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QComboBox::down-arrow {
|
|
|
|
|
image: none;
|
|
|
|
|
border-left: 3px solid transparent;
|
|
|
|
|
border-right: 3px solid transparent;
|
|
|
|
|
border-top: 5px solid #333333;
|
|
|
|
|
border-left: 4px solid transparent;
|
|
|
|
|
border-right: 4px solid transparent;
|
|
|
|
|
border-top: 6px solid #666666;
|
|
|
|
|
margin: 6px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 下拉框弹出列表 */
|
|
|
|
|
QComboBox QAbstractItemView {
|
|
|
|
|
background-color: #ffffff;
|
|
|
|
|
border: 1px solid #d0d0d0;
|
|
|
|
|
color: #333333;
|
|
|
|
|
selection-background-color: #f0f0f0;
|
|
|
|
|
selection-color: #333333;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 字体下拉框特殊处理 - 白底黑字 */
|
|
|
|
|
QFontComboBox {
|
|
|
|
|
background-color: #ffffff;
|
|
|
|
|
border: 1px solid #d0d0d0;
|
|
|
|
|
border-radius: 2px;
|
|
|
|
|
color: #333333;
|
|
|
|
|
padding: 2px 5px;
|
|
|
|
|
selection-background-color: #f0f0f0;
|
|
|
|
|
selection-color: #333333;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QFontComboBox:hover {
|
|
|
|
|
background-color: #f0f0f0;
|
|
|
|
|
border: 1px solid #0078d7;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QFontComboBox::drop-down {
|
|
|
|
|
border: none;
|
|
|
|
|
width: 15px;
|
|
|
|
|
background-color: #ffffff;
|
|
|
|
|
selection-background-color: #007aff;
|
|
|
|
|
selection-color: #ffffff;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QFontComboBox::down-arrow {
|
|
|
|
|
image: none;
|
|
|
|
|
border-left: 3px solid transparent;
|
|
|
|
|
border-right: 3px solid transparent;
|
|
|
|
|
border-top: 5px solid #333333;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QFontComboBox QAbstractItemView {
|
|
|
|
|
background-color: #ffffff;
|
|
|
|
|
border: 1px solid #d0d0d0;
|
|
|
|
|
color: #333333;
|
|
|
|
|
selection-background-color: #f0f0f0;
|
|
|
|
|
selection-color: #333333;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 文本编辑器 */
|
|
|
|
|
/* 文本编辑区域 - Apple风格 */
|
|
|
|
|
QTextEdit {
|
|
|
|
|
background-color: #ffffff;
|
|
|
|
|
border: 1px solid #d0d0d0;
|
|
|
|
|
color: #000000;
|
|
|
|
|
padding: 20px;
|
|
|
|
|
border: none;
|
|
|
|
|
font-family: '-apple-system', 'BlinkMacSystemFont', 'Segoe UI', 'Helvetica Neue', 'Helvetica', 'Arial', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', '微软雅黑', sans-serif;
|
|
|
|
|
font-size: 15px;
|
|
|
|
|
color: #333333;
|
|
|
|
|
padding: 32px;
|
|
|
|
|
line-height: 1.5;
|
|
|
|
|
selection-background-color: #b3d9ff;
|
|
|
|
|
selection-color: #333333;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 状态栏 */
|
|
|
|
|
/* 状态栏 - Apple风格 */
|
|
|
|
|
QStatusBar {
|
|
|
|
|
background-color: #ffffff;
|
|
|
|
|
border-top: 1px solid #d0d0d0;
|
|
|
|
|
font-size: 11px;
|
|
|
|
|
color: #333333;
|
|
|
|
|
background-color: #f6f6f6;
|
|
|
|
|
border-top: 1px solid #e0e0e0;
|
|
|
|
|
font-size: 12px;
|
|
|
|
|
color: #666666;
|
|
|
|
|
font-family: '-apple-system', 'BlinkMacSystemFont', 'Segoe UI', 'Helvetica Neue', 'Helvetica', 'Arial', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', '微软雅黑', sans-serif;
|
|
|
|
|
padding: 6px 12px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 标签 */
|
|
|
|
|
@ -623,41 +693,58 @@ class ThemeManager(QObject):
|
|
|
|
|
background-color: transparent;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 消息框 - 修复黑色背景问题 */
|
|
|
|
|
/* 消息框 - Apple风格 */
|
|
|
|
|
QMessageBox {
|
|
|
|
|
background-color: #ffffff;
|
|
|
|
|
color: #333333;
|
|
|
|
|
border-radius: 12px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QMessageBox QPushButton {
|
|
|
|
|
background-color: #ffffff;
|
|
|
|
|
background-color: #f6f6f6;
|
|
|
|
|
color: #333333;
|
|
|
|
|
border: 1px solid #d0d0d0;
|
|
|
|
|
border-radius: 3px;
|
|
|
|
|
padding: 5px 15px;
|
|
|
|
|
border-radius: 6px;
|
|
|
|
|
padding: 6px 16px;
|
|
|
|
|
min-width: 80px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QMessageBox QPushButton:hover {
|
|
|
|
|
background-color: #f0f0f0;
|
|
|
|
|
border: 1px solid #0078d7;
|
|
|
|
|
background-color: #e0e0e0;
|
|
|
|
|
border: 1px solid #c0c0c0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QMessageBox QPushButton:pressed {
|
|
|
|
|
background-color: #e0e0e0;
|
|
|
|
|
border: 1px solid #005a9e;
|
|
|
|
|
background-color: #d0d0d0;
|
|
|
|
|
border: 1px solid #a0a0a0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QMessageBox QPushButton:default {
|
|
|
|
|
background-color: #007aff;
|
|
|
|
|
color: #ffffff;
|
|
|
|
|
border: 1px solid #007aff;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QMessageBox QPushButton:default:hover {
|
|
|
|
|
background-color: #0062cc;
|
|
|
|
|
border: 1px solid #0062cc;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QMessageBox QPushButton:default:pressed {
|
|
|
|
|
background-color: #004a99;
|
|
|
|
|
border: 1px solid #004a99;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 滚动条 */
|
|
|
|
|
/* 滚动条 - Apple风格 */
|
|
|
|
|
QScrollBar:vertical {
|
|
|
|
|
background-color: #ffffff;
|
|
|
|
|
width: 12px;
|
|
|
|
|
background-color: transparent;
|
|
|
|
|
width: 8px;
|
|
|
|
|
border: none;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QScrollBar::handle:vertical {
|
|
|
|
|
background-color: #c0c0c0;
|
|
|
|
|
border-radius: 6px;
|
|
|
|
|
border-radius: 4px;
|
|
|
|
|
min-height: 20px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -669,6 +756,42 @@ class ThemeManager(QObject):
|
|
|
|
|
border: none;
|
|
|
|
|
background: none;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 按钮 - Apple风格 */
|
|
|
|
|
QPushButton {
|
|
|
|
|
background-color: #f6f6f6;
|
|
|
|
|
color: #333333;
|
|
|
|
|
border: 1px solid #d0d0d0;
|
|
|
|
|
border-radius: 6px;
|
|
|
|
|
padding: 6px 16px;
|
|
|
|
|
font-size: 13px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QPushButton:hover {
|
|
|
|
|
background-color: #e0e0e0;
|
|
|
|
|
border: 1px solid #c0c0c0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QPushButton:pressed {
|
|
|
|
|
background-color: #d0d0d0;
|
|
|
|
|
border: 1px solid #a0a0a0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QPushButton:default {
|
|
|
|
|
background-color: #007aff;
|
|
|
|
|
color: #ffffff;
|
|
|
|
|
border: 1px solid #007aff;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QPushButton:default:hover {
|
|
|
|
|
background-color: #0062cc;
|
|
|
|
|
border: 1px solid #0062cc;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QPushButton:default:pressed {
|
|
|
|
|
background-color: #004a99;
|
|
|
|
|
border: 1px solid #004a99;
|
|
|
|
|
}
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
def set_dark_theme(self, is_dark):
|
|
|
|
|
|