fix: 修复 light 主题黑色方块 — 显式设置 light palette + 移除 tab 圆角

1. light 主题 palette 改用显式颜色(QPalette::Window #ffffff 等),
   替代 standardPalette(),后者在 Fusion 风格下可能返回不正确的颜色
2. QTabWidget::pane 移除 border-radius,Fusion 风格下圆角会导致
   裁剪区域渲染为黑色

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
impressionyang 2026-06-11 19:37:20 +08:00
parent 58eabec900
commit a3130d0d2a
2 changed files with 19 additions and 2 deletions

View File

@ -109,7 +109,25 @@ void Application::applyTheme(const QString& theme) {
palette.setColor(QPalette::Disabled, QPalette::Highlight, QColor(80, 80, 80));
palette.setColor(QPalette::Disabled, QPalette::HighlightedText, QColor(127, 127, 127));
} else {
palette = qApp->style()->standardPalette();
// 显式设置亮色主题(不依赖 standardPalette兼容 Fusion 风格)
palette.setColor(QPalette::Window, QColor(255, 255, 255));
palette.setColor(QPalette::WindowText, QColor(34, 34, 34));
palette.setColor(QPalette::Base, QColor(255, 255, 255));
palette.setColor(QPalette::AlternateBase, QColor(245, 245, 245));
palette.setColor(QPalette::ToolTipBase, Qt::white);
palette.setColor(QPalette::ToolTipText, QColor(34, 34, 34));
palette.setColor(QPalette::Text, QColor(34, 34, 34));
palette.setColor(QPalette::Button, QColor(255, 255, 255));
palette.setColor(QPalette::ButtonText, QColor(34, 34, 34));
palette.setColor(QPalette::BrightText, QColor(0, 150, 136));
palette.setColor(QPalette::Link, QColor(42, 130, 218));
palette.setColor(QPalette::Highlight, QColor(42, 130, 218));
palette.setColor(QPalette::HighlightedText, Qt::white);
palette.setColor(QPalette::Disabled, QPalette::Text, QColor(180, 180, 180));
palette.setColor(QPalette::Disabled, QPalette::ButtonText, QColor(180, 180, 180));
palette.setColor(QPalette::Disabled, QPalette::WindowText, QColor(180, 180, 180));
palette.setColor(QPalette::Disabled, QPalette::Highlight, QColor(200, 200, 200));
palette.setColor(QPalette::Disabled, QPalette::HighlightedText, QColor(160, 160, 160));
}
qApp->setPalette(palette);

View File

@ -10,7 +10,6 @@
/* ========== QTabWidget ========== */
QTabWidget::pane {
border: 1px solid #e0e0e0;
border-radius: 6px;
background: #ffffff;
}