diff --git a/src/app/main.cpp b/src/app/main.cpp index feb0358..c414485 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -35,6 +35,7 @@ #include #include #include +#include #include #include #include @@ -379,14 +380,22 @@ void buildWorkbench(QMainWindow& window, geopro::data::LocalSampleRepository& re } fieldDict->setArrayTypeEnum(std::move(e)); }); - auto* viewRow = new QHBoxLayout(); - viewRow->setContentsMargins(0, 0, 0, 0); - viewRow->setSpacing(0); - viewRow->addWidget(drawer); // 左侧抽屉(自带折叠按钮) - viewRow->addWidget(viewToolbar); // 画布工具条(竖排:设置/前后上下左右/缩放复位) - viewRow->addWidget(vtkWidget, 1); // 右侧 GL 画布 + // 左侧抽屉 | 右侧(工具条+画布)用 QSplitter,左面板可拖动改宽(不可拖没;右侧伸缩)。 + auto* split = new QSplitter(Qt::Horizontal); + split->setChildrenCollapsible(false); + split->setHandleWidth(4); + split->addWidget(drawer); + auto* rightWrap = new QWidget(); + auto* rl = new QHBoxLayout(rightWrap); + rl->setContentsMargins(0, 0, 0, 0); + rl->setSpacing(0); + rl->addWidget(viewToolbar); // 画布工具条 + rl->addWidget(vtkWidget, 1); // GL 画布 + split->addWidget(rightWrap); + split->setStretchFactor(0, 0); + split->setStretchFactor(1, 1); centerLayout->addWidget(viewHeader); - centerLayout->addLayout(viewRow, 1); + centerLayout->addWidget(split, 1); // 3b:三维分析栏勾选的已保存切片(dd_slice) id 集合 + 调和函数。 // syncSlices:按"当前活动体 dsId"调和 InteractionManager 上显示的已保存切片—— diff --git a/src/app/panels/columns/CategoryAnalysisTab.cpp b/src/app/panels/columns/CategoryAnalysisTab.cpp index f719751..f443a00 100644 --- a/src/app/panels/columns/CategoryAnalysisTab.cpp +++ b/src/app/panels/columns/CategoryAnalysisTab.cpp @@ -17,6 +17,7 @@ CategoryAnalysisTab::CategoryAnalysisTab(geopro::data::DatasetFieldDictionary* d auto* scroll = new QScrollArea(this); scroll->setWidgetResizable(true); scroll->setFrameShape(QFrame::NoFrame); + scroll->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); // 内容随面板宽自适应,不出横向滚动条 outer->addWidget(scroll, 1); auto* content = new QWidget(scroll); diff --git a/src/app/panels/columns/ColumnDrawer.cpp b/src/app/panels/columns/ColumnDrawer.cpp index 4e25e17..07b30df 100644 --- a/src/app/panels/columns/ColumnDrawer.cpp +++ b/src/app/panels/columns/ColumnDrawer.cpp @@ -51,8 +51,9 @@ ColumnDrawer::ColumnDrawer(QWidget* parent, geopro::data::DatasetFieldDictionary root->addWidget(body_, 1); root->addWidget(toggleBtn_, 0); - // 展开时限宽 ~318px (300 body + 18 btn) - setMaximumWidth(318); + // 可调宽:min 180 / max 560(外层 QSplitter 拖动改宽)。 + setMinimumWidth(180); + setMaximumWidth(560); } void ColumnDrawer::toggleCollapsed() @@ -61,8 +62,9 @@ void ColumnDrawer::toggleCollapsed() body_->setVisible(!collapsed_); toggleBtn_->setIcon(geopro::app::makeGlyph(collapsed_ ? Glyph::ChevronRight : Glyph::ChevronLeft, geopro::app::tokenColor("text/secondary"), 14)); - // 折叠后只保留按钮宽度;展开恢复上限 - setMaximumWidth(collapsed_ ? 18 : 318); + // 折叠后只保留按钮宽度;展开恢复可调范围 + setMinimumWidth(collapsed_ ? 0 : 180); + setMaximumWidth(collapsed_ ? 18 : 560); } void ColumnDrawer::expand()