关于QDockWidget停靠位置的问题

我在QMainWindow中添加了3个QDockWidget,先后顺序是leftWidget,rightWidget,bottomWidget,运行后bottomWidget占据了整个主窗口的底部,我想要让它停在底部,但是不要撑起左右两个停靠窗口,这需要怎么设置?

 

 

你可以在创建 QDockWidget 时设置它的停靠位置,例如:

QDockWidget *bottomWidget = new QDockWidget(tr("Bottom Widget"));
bottomWidget->setAllowedAreas(Qt::BottomDockWidgetArea);
addDockWidget(Qt::BottomDockWidgetArea, bottomWidget);

你也可以使用 setDockOptions 函数设置停靠窗口的相关选项,例如让停靠窗口可以浮动:

bottomWidget->setDockOptions(QDockWidget::DockOption::AllowFloating);

你还可以使用 tabifyDockWidget 函数将停靠窗口和其他停靠窗口放在一个停靠区域内:

tabifyDockWidget(leftWidget, rightWidget);
tabifyDockWidget(leftWidget, bottomWidget);

这样就可以让 bottomWidget 停在底部,并且不会撑起左右两个停靠窗口。