如何在屏幕的左边缘放置一个停靠小部件,在右边缘放置另一个停靠小部件

时间:2018-05-31 06:44:40

标签: c++ qt qdockwidget

我一直试图让两个QDockWidget并排放置,而是在主窗口的左边缘和另一个在主窗口的右边缘。

我已经尝试过Qt论坛的所有解决方案。左侧停靠窗口小部件使用LeftDockWidgetArea,右侧使用RightWidgetArea。我也叫了

setCorner(Qt::TopLeftCorner, Qt::LeftDockWidgetArea);
setCorner(Qt::TopRightCorner, Qt::RightDockWidgetArea);
setCorner(Qt::BottomLeftCorner, Qt::LeftDockWidgetArea);
setCorner(Qt::BottomRightCorner, Qt::RightDockWidgetArea);

addDockWidget(Qt::LeftDockWidgetArea, leftDockWidget);
addDockWidget(Qt::RightDockWidgetArea, rightDockWidget);

但是底座小部件总是并排放置。我做错了什么?

这是展示问题的图片。 enter image description here

1 个答案:

答案 0 :(得分:0)

从Qt 5开始,以下代码在Windows和Linux上都可以使用。

#include <QDockWidget>
...
QDockWidget* leftDockWidget = new QDockWidget(tr("Left Dock Widget"), this);
leftDockWidget->setAllowedAreas(Qt::LeftDockWidgetArea);
this->addDockWidget(Qt::LeftDockWidgetArea,leftDockWidget);
//
QDockWidget* rightDockWidget = new QDockWidget(tr("Right Dock Widget"), this);
rightDockWidget->setAllowedAreas(Qt::RightDockWidgetArea);
this->addDockWidget(Qt::RightDockWidgetArea, rightDockWidget);