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