From 98bbc9f9478471903fdaa26b66fb531a547856e8 Mon Sep 17 00:00:00 2001 From: gaozheng Date: Thu, 25 Jun 2026 21:18:49 +0800 Subject: [PATCH] =?UTF-8?q?fix(ui):=20=E7=94=9F=E6=88=90=E4=BD=8D=E7=BD=AE?= =?UTF-8?q?=E4=B8=8B=E6=8B=89=E6=A0=91=E9=9D=A2=E6=9D=BF=E5=8A=A0=E5=AE=BD?= =?UTF-8?q?,=E9=81=BF=E5=85=8D=E9=95=BF=E8=8A=82=E7=82=B9=E5=90=8D?= =?UTF-8?q?=E8=A2=AB=E6=88=AA=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit QComboBox 树 popup 默认只取 combo 宽度+缩进 → GS/TM 长名被遮(用户反馈)。按最长节点名文本宽 (QFontMetrics) + 缩进/箭头/滚动条余量(120px)定 view 最小宽,下限 260px,保证全名可见。 注:obj 已编译通过;本地链接因 app 运行中 exe 被锁(LNK1104)未完成,关 app 后重 build 即生效。 --- src/app/VolumeParamsDialog.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/app/VolumeParamsDialog.cpp b/src/app/VolumeParamsDialog.cpp index 9a2c17e..6a881cd 100644 --- a/src/app/VolumeParamsDialog.cpp +++ b/src/app/VolumeParamsDialog.cpp @@ -1,10 +1,12 @@ #include "VolumeParamsDialog.hpp" +#include #include #include #include #include +#include #include #include #include @@ -141,6 +143,13 @@ VolumeParamsDialog::VolumeParamsDialog(const QVector& sources, mount_->setModel(model); mount_->setView(view); view->expandAll(); + // 下拉面板加宽:默认只取 combo 宽度+缩进 → 长名被截。按最长节点名的文本宽 + 缩进/箭头/滚动条余量 + // 定最小宽,保证 GS/TM 全名可见(用户反馈被遮住)。 + int maxTextW = 0; + const QFontMetrics fm = view->fontMetrics(); + for (const auto& n : structure) + maxTextW = std::max(maxTextW, fm.horizontalAdvance(QString::fromStdString(n.name))); + view->setMinimumWidth(std::max(geopro::app::scaledPx(260), maxTextW + geopro::app::scaledPx(120))); // 默认选中:指定的 defaultMountId,否则首个节点。view 当前项决定 mountTargetId;combo 显示尽力。 QStandardItem* def = mItems.value(defaultMountId, nullptr); if (!def && model->rowCount() > 0) def = model->item(0);