From 9e80b2fea1cb4c3da781eacaba97400edf3ba088 Mon Sep 17 00:00:00 2001 From: gaozheng Date: Wed, 10 Jun 2026 17:21:36 +0800 Subject: [PATCH] =?UTF-8?q?feat(ui):=20=E9=9D=A2=E6=9D=BF=E6=94=B9?= =?UTF-8?q?=E5=90=8D(=E5=AF=B9=E8=B1=A1/=E6=95=B0=E6=8D=AE=E9=9B=86/?= =?UTF-8?q?=E5=BC=82=E5=B8=B8/=E6=95=B0=E6=8D=AE=E9=9B=86=E5=B1=9E?= =?UTF-8?q?=E6=80=A7)=20+=20=E5=8E=9F=E6=95=B0=E6=8D=AE/=E7=BD=91=E6=A0=BC?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=94=B9=E4=B8=BA=E4=B8=8B=E5=88=92=E7=BA=BF?= =?UTF-8?q?=E9=A1=B5=E7=AD=BE(=E4=B8=8E=E5=85=B6=E4=BB=96=E5=88=87?= =?UTF-8?q?=E6=8D=A2=E4=B8=80=E8=87=B4)=20+=20=E8=A1=A8=E5=A4=B4=E5=9B=BE?= =?UTF-8?q?=E6=A0=87=E9=97=B4=E8=B7=9D=E5=AF=B9=E9=BD=90=E8=A7=84=E8=8C=83?= =?UTF-8?q?6px(=C2=A76.7)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/PanelHeader.cpp | 2 +- src/app/main.cpp | 27 +++++++++++++++++---------- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/src/app/PanelHeader.cpp b/src/app/PanelHeader.cpp index e45939f..f2f7b98 100644 --- a/src/app/PanelHeader.cpp +++ b/src/app/PanelHeader.cpp @@ -85,7 +85,7 @@ QWidget* buildPanelHeader(Glyph icon, const QString& title, const QVector
setContentsMargins(12, 0, 8, 0); - lay->setSpacing(8); + lay->setSpacing(geopro::app::space::kSm); auto* iconLbl = new QLabel(header); setThemedGlyph(iconLbl, icon, kTitleIcon); // 随主题着色(暗色下也清晰) diff --git a/src/app/main.cpp b/src/app/main.cpp index f67c86e..5bc18bd 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -330,6 +330,11 @@ void buildWorkbench(QMainWindow& window, geopro::data::LocalSampleRepository& re " font-size:%1px; }" "QToolButton:hover{ background:{{bg/hover}}; }" "QToolButton:checked{ color:{{accent/primary}}; font-weight:%2;" + " border-bottom:2px solid {{accent/primary}}; }" + "QToolButton#dataTab{ border:none; border-radius:0; background:transparent;" + " border-bottom:2px solid transparent; color:{{text/secondary}}; padding:8px 8px; }" + "QToolButton#dataTab:hover{ color:{{text/primary}}; background:transparent; }" + "QToolButton#dataTab: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); @@ -482,6 +487,8 @@ void buildWorkbench(QMainWindow& window, geopro::data::LocalSampleRepository& re detailGroup->setExclusive(true); auto* actScatter = makeBarBtn(QStringLiteral("原数据"), true); auto* actSection = makeBarBtn(QStringLiteral("网格数据"), true); + actScatter->setObjectName(QStringLiteral("dataTab")); + actSection->setObjectName(QStringLiteral("dataTab")); detailGroup->addButton(actScatter); detailGroup->addButton(actSection); detailBarLay->addWidget(actScatter); @@ -517,8 +524,8 @@ void buildWorkbench(QMainWindow& window, geopro::data::LocalSampleRepository& re // 左上 dock:对象树(真实结构:项目根 → GS → TM)。被动视图,数据由控制器推送。 auto* objectTree = new geopro::app::ObjectTreePanel(); - auto* leftDock = new ads::CDockWidget(QStringLiteral("对象显示栏")); - leftDock->setWidget(wrapWithHeader(geopro::app::Glyph::Tree, QStringLiteral("对象显示栏"), + auto* leftDock = new ads::CDockWidget(QStringLiteral("对象")); + leftDock->setWidget(wrapWithHeader(geopro::app::Glyph::Tree, QStringLiteral("对象"), objectTree, {{geopro::app::Glyph::Plus, QStringLiteral("新建对象")}})); auto* leftArea = dockManager->addDockWidget(ads::LeftDockWidgetArea, leftDock); @@ -531,9 +538,9 @@ void buildWorkbench(QMainWindow& window, geopro::data::LocalSampleRepository& re auto* fileList = new QListWidget(); geopro::app::applyDatasetCardDelegate(fileList); datasetTabs->addTab(fileList, QStringLiteral("文件")); - auto* datasetDock = new ads::CDockWidget(QStringLiteral("数据真实显示栏")); + auto* datasetDock = new ads::CDockWidget(QStringLiteral("数据集")); auto* datasetBox = wrapWithHeader( - geopro::app::Glyph::Dataset, QStringLiteral("数据真实显示栏"), datasetTabs, + geopro::app::Glyph::Dataset, QStringLiteral("数据集"), datasetTabs, {{geopro::app::Glyph::Filter, QStringLiteral("筛选")}, {geopro::app::Glyph::Upload, QStringLiteral("上传")}}); datasetDock->setWidget(datasetBox); @@ -550,7 +557,7 @@ void buildWorkbench(QMainWindow& window, geopro::data::LocalSampleRepository& re objAttrLabel->setMargin(8); auto anomalyPanel = geopro::app::buildTabbedPanel( - {{geopro::app::Glyph::Anomaly, QStringLiteral("异常列表"), anomalyList, true}, + {{geopro::app::Glyph::Anomaly, QStringLiteral("异常"), anomalyList, true}, {geopro::app::Glyph::Property, QStringLiteral("对象属性"), objAttrLabel, false}}, {{geopro::app::Glyph::Filter, QStringLiteral("筛选")}, {geopro::app::Glyph::Plus, QStringLiteral("添加异常")}}); @@ -565,7 +572,7 @@ void buildWorkbench(QMainWindow& window, geopro::data::LocalSampleRepository& re anomalyBadge->style()->polish(anomalyBadge); } - auto* rightDock = new ads::CDockWidget(QStringLiteral("异常列表/对象属性")); + auto* rightDock = new ads::CDockWidget(QStringLiteral("异常/对象属性")); rightDock->setWidget(anomalyPanel.container); auto* rightArea = dockManager->addDockWidget(ads::RightDockWidgetArea, rightDock); @@ -574,9 +581,9 @@ void buildWorkbench(QMainWindow& window, geopro::data::LocalSampleRepository& re propLabel->setWordWrap(true); propLabel->setAlignment(Qt::AlignTop | Qt::AlignLeft); propLabel->setMargin(8); - auto* propDock = new ads::CDockWidget(QStringLiteral("属性")); + auto* propDock = new ads::CDockWidget(QStringLiteral("数据集属性")); propDock->setWidget( - wrapWithHeader(geopro::app::Glyph::Property, QStringLiteral("属性"), propLabel)); + wrapWithHeader(geopro::app::Glyph::Property, QStringLiteral("数据集属性"), propLabel)); dockManager->addDockWidget(ads::BottomDockWidgetArea, propDock, rightArea); // 固定全部面板(对齐原型):移除 关闭/浮动/拖动/钉住 等子窗口操作,仅保留分隔条调整边界。 @@ -928,7 +935,7 @@ void buildWorkbench(QMainWindow& window, geopro::data::LocalSampleRepository& re objectTree->setStructure(projectName, nodes); datasetList->clear(); fileList->clear(); - if (datasetTitle) datasetTitle->setText(QStringLiteral("数据集显示栏")); + if (datasetTitle) datasetTitle->setText(QStringLiteral("数据集")); datasetTabs->setTabText(0, QStringLiteral("数据")); datasetTabs->setTabText(1, QStringLiteral("文件")); }); @@ -939,7 +946,7 @@ void buildWorkbench(QMainWindow& window, geopro::data::LocalSampleRepository& re removeLoadMore(datasetList); geopro::app::populateDatasetList(datasetList, rows, append); const int loaded = addLoadMore(datasetList, total); - if (datasetTitle) datasetTitle->setText(QStringLiteral("数据集显示栏")); + if (datasetTitle) datasetTitle->setText(QStringLiteral("数据集")); datasetTabs->setTabText( 0, total > 0 ? QStringLiteral("数据 (%1/%2)").arg(loaded).arg(total) : QStringLiteral("数据"));