diff --git a/src/app/main.cpp b/src/app/main.cpp index 478a4d1..bf6df1c 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -295,9 +295,9 @@ void buildWorkbench(QMainWindow& window, geopro::data::LocalSampleRepository& re auto applyDockSplitter = [dockManager, dockBaseQss]() { dockManager->setStyleSheet( dockBaseQss + - geopro::app::themed(QStringLiteral( - "ads--CDockContainerWidget ads--CDockSplitter::handle { background: #EAEEF4; }" - "ads--CDockContainerWidget ads--CDockSplitter::handle:hover { background: #C7D2E0; }"))); + geopro::app::fillTokens(QStringLiteral( + "ads--CDockContainerWidget ads--CDockSplitter::handle { background: {{divider}}; }" + "ads--CDockContainerWidget ads--CDockSplitter::handle:hover { background: {{accent/primary}}; }"))); }; applyDockSplitter(); QObject::connect(&geopro::app::ThemeManager::instance(), &geopro::app::ThemeManager::changed, @@ -326,11 +326,11 @@ void buildWorkbench(QMainWindow& window, geopro::data::LocalSampleRepository& re // ElaToolButton 选中只画极淡 BasicHover、且不可经 QSS 改,故这类需清晰选中态的用 QToolButton。 const QString kBarBtnQss = QStringLiteral( - "QToolButton{ border:none; border-radius:6px; padding:6px 12px; color:#1F2A3D;" + "QToolButton{ border:none; border-radius:6px; padding:6px 12px; color:{{text/primary}};" " font-size:%1px; }" - "QToolButton:hover{ background:#EEF3FB; }" - "QToolButton:checked{ color:#2D6CB5; font-weight:%2;" - " border-bottom:2px solid #2D6CB5; }") + "QToolButton:hover{ background:{{bg/hover}}; }" + "QToolButton:checked{ color:{{accent/primary}}; font-weight:%2;" + " border-bottom:2px solid {{accent/primary}}; }") .arg(geopro::app::scaledPx(geopro::app::type::kBody)) .arg(geopro::app::type::kWeightSemibold); @@ -503,7 +503,7 @@ void buildWorkbench(QMainWindow& window, geopro::data::LocalSampleRepository& re detailBarLay->addWidget(actShowElectrodes); detailBarLay->addWidget(actShowContour); detailBarLay->addStretch(); - geopro::app::applyThemedStyleSheet(detailToolBar, kBarBtnQss); + geopro::app::applyTokenizedStyleSheet(detailToolBar, kBarBtnQss); detailLayout->addWidget(detailToolBar); detailLayout->addWidget(detailWidget, 1); diff --git a/src/app/panels/ObjectTreePanel.cpp b/src/app/panels/ObjectTreePanel.cpp index 0f96985..bca7f1a 100644 --- a/src/app/panels/ObjectTreePanel.cpp +++ b/src/app/panels/ObjectTreePanel.cpp @@ -44,15 +44,15 @@ ObjectTreePanel::ObjectTreePanel(QWidget* parent) : QWidget(parent) { // 规避 Fusion 原生复选框在浅底下边框过淡、看不清的问题。 auto applyCheckboxStyle = [this]() { const bool dark = geopro::app::isDarkTheme(); - const QColor border = dark ? QColor(0x8A, 0x92, 0x9C) : QColor(0x8A, 0x93, 0xA3); - const QColor boxBg = dark ? QColor(0x2B, 0x2D, 0x30) : QColor(0xFF, 0xFF, 0xFF); - const QColor accent = dark ? QColor(0x5E, 0x9B, 0xD6) : QColor(0x2D, 0x6C, 0xB5); // 强调明/暗 + const QColor border = geopro::app::tokenColor("border/strong"); // 未选复选框描边(规范§6.12) + const QColor boxBg = geopro::app::tokenColor("bg/panel"); + const QColor accent = geopro::app::tokenColor("accent/primary"); // 选中填充 const QString tag = dark ? QStringLiteral("d") : QStringLiteral("l"); const QString off = geopro::app::writeCheckboxIcon(false, border, boxBg, Qt::white, tag); const QString on = geopro::app::writeCheckboxIcon(true, accent, accent, Qt::white, tag); - // 选中底色与 Ela 列表(BasicSelectedAlpha)保持一致:明=浅蓝、暗=中深蓝;:!active 防失焦变淡。 - const QString selBg = dark ? QStringLiteral("#33527A") : QStringLiteral("#C2D9F2"); - const QString selFg = dark ? QStringLiteral("#E8F1FB") : QStringLiteral("#14385F"); + // 选中底/字取语义令牌,与全局树/列表选中一致(规范§6.1/§10)。 + const QString selBg = geopro::app::token("bg/selected"); + const QString selFg = geopro::app::token("text/primary"); tree_->setStyleSheet(QStringLiteral("QTreeView::indicator{ width:16px; height:16px; }" "QTreeView::indicator:unchecked{ image:url(%1); }" "QTreeView::indicator:checked{ image:url(%2); }" @@ -68,7 +68,7 @@ ObjectTreePanel::ObjectTreePanel(QWidget* parent) : QWidget(parent) { hint_ = new QLabel(QStringLiteral("正在加载对象…"), this); hint_->setAlignment(Qt::AlignCenter); - geopro::app::applyThemedStyleSheet(hint_, QStringLiteral("color:#9AA6B6; padding:16px;")); + geopro::app::applyTokenizedStyleSheet(hint_, QStringLiteral("color:{{text/disabled}}; padding:16px;")); hint_->setVisible(false); lay->addWidget(hint_);