Как расположить QDockwidgets в QMainWindow? - PullRequest
0 голосов
/ 24 января 2020

Я пытаюсь создать приложение, которое имеет 4 виджета в главном окне, и я хочу расположить их так, как показано на рисунке:

Layout of the docked widgets

Это макет Я можно добиться с помощью следующего кода:

MainWindow::MainWindow(QWidget* parent) : QMainWindow(parent), ui_(std::make_unique<Ui::MainWindow>()) {
    ui_->setupUi(this);

    1DockWidget_ = std::make_unique<1DockWidget>();
    2DockWidget_ = std::make_unique<2DockWidget>();
    3DockWidget_ = std::make_unique<3DockWidget>();
    4DockWidget_ = std::make_unique<4DockWidget>();

    setCentralWidget(2DockWidget_.get());
    addDockWidget(Qt::TopDockWidgetArea, 1DockWidget_.get());
    addDockWidget(Qt::TopDockWidgetArea, 2DockWidget_.get());
    addDockWidget(Qt::TopDockWidgetArea, 3DockWidget_.get());
    addDockWidget(Qt::BottomDockWidgetArea, 4DockWidget_.get());

    splitDockWidget(1DockWidget_.get(), 2DockWidget_.get(), Qt::Orientation::Horizontal);
    splitDockWidget(2DockWidget_.get(), 3DockWidget_.get(), Qt::Orientation::Horizontal);
    //splitDockWidget(repoManagerDockWidget_.get(), terminalDockWidget_.get(), Qt::Orientation::Vertical);
}

Все виджеты являются подвижными. Проблема, с которой я сталкиваюсь, состоит в том, что, как только я отсоединяю 4-й виджет Dock, который находится внизу, и снова пытаюсь закрепить его в том же месте, то есть внизу, это невозможно сделать. Но его можно закрепить в других местах.

Может кто-нибудь помочь мне решить эту проблему?

...