Как иметь один виджет для док-станции на левом краю экрана, а другой на правом краю - PullRequest
0 голосов
/ 31 мая 2018

Я пытался получить два 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 голосов
/ 01 июня 2018

Следующий код должен работать как в Windows, так и в Linux, начиная с Qt 5.

#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);
...