fix(ui): 生成位置下拉树面板加宽,避免长节点名被截断
QComboBox 树 popup 默认只取 combo 宽度+缩进 → GS/TM 长名被遮(用户反馈)。按最长节点名文本宽 (QFontMetrics) + 缩进/箭头/滚动条余量(120px)定 view 最小宽,下限 260px,保证全名可见。 注:obj 已编译通过;本地链接因 app 运行中 exe 被锁(LNK1104)未完成,关 app 后重 build 即生效。
This commit is contained in:
parent
5edfc8e5e8
commit
98bbc9f947
|
|
@ -1,10 +1,12 @@
|
|||
#include "VolumeParamsDialog.hpp"
|
||||
|
||||
#include <algorithm>
|
||||
#include <map>
|
||||
#include <set>
|
||||
|
||||
#include <QComboBox>
|
||||
#include <QDoubleSpinBox>
|
||||
#include <QFontMetrics>
|
||||
#include <QFormLayout>
|
||||
#include <QHBoxLayout>
|
||||
#include <QHash>
|
||||
|
|
@ -141,6 +143,13 @@ VolumeParamsDialog::VolumeParamsDialog(const QVector<VolumeSourceItem>& 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);
|
||||
|
|
|
|||
Loading…
Reference in New Issue