QLayout перекрывает QWidget

Вот мой проект.

В QMainWindowесть центральный виджет (например QLabel) и QDockWidget, когда dockWidget находится в плавающем состоянии, все как и ожидалось:

Однако, когда он вставлен в главное окно, некоторые виджеты перекрываются, как показано ниже:

Может кто-нибудь попробовать и помочь мне исправить?

Код экрана устройства:

QHBoxLayout *lytSurfaceBtns = new QHBoxLayout;
lytSurfaceBtns->addWidget(this->btnRecentApps);
lytSurfaceBtns->addWidget(this->btnHome);
lytSurfaceBtns->addWidget(this->btnBack);

// set Graphics View size
playerGraphicsView->setFixedWidth(ShortSide);
playerGraphicsView->setFixedHeight(LongSide);
playerGraphicsView->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
playerGraphicsView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
playerGraphicsView->setSceneRect(0, 0, ShortSide, LongSide);

QVBoxLayout *lytMain = new QVBoxLayout(this);
lytMain->setMargin(0);
lytMain->setSpacing(2);
lytMain->addWidget(this->toolBox);
lytMain->addWidget(this->playerGraphicsView);     // this widget is OVERLAPPED
lytMain->addLayout(lytSurfaceBtns);               // this layout is OVERLAPPING

this->setLayout(lytMain);

Код главного окна:

QLabel *centralWidget = new QLabel(tr("central widget"));
centralWidget->setStyleSheet("background-color: green");
setCentralWidget(centralWidget);

QDockWidget *deviceDockable = new QDockWidget(tr("Device"), this);
deviceDockable->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
deviceDockable->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
deviceDockable->setFeatures(QDockWidget::DockWidgetFloatable);

DeviceScreenWidget *deviceScreenWidget = new DeviceScreenWidget(this);

deviceDockable->setWidget(deviceScreenWidget);
deviceDockable->setMaximumSize(deviceScreenWidget->minimumSizeHint());

addDockWidget(Qt::RightDockWidgetArea, deviceDockable);

0 ответов

Другие вопросы по тегам