首页 > 解决方案 > 在 setFloating(true) 之后 QDockWidget 被覆盖在主窗口下

问题描述

我希望一个停靠小部件在开始时浮动。所以我将停靠小部件添加到该区域,然后 setFloating(true)。但行为是这个停靠小部件被覆盖在主窗口下(不会留在顶部)

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    auto* dock = new QDockWidget(this);
    auto* widget = new QWidget(dock);
    auto* layout = new QHBoxLayout();
    widget->setLayout(layout);
    dock->setWidget(widget);
    addDockWidget(Qt::RightDockWidgetArea, dock);
    dock->setFloating(true);


    layout->addWidget(new QPushButton("test", this));
}

停靠小部件在右上角可见,但是当我拖动主窗口时,停靠小部件隐藏在其下方。要修复它,我必须将停靠小部件拖到停靠区域,然后再次将其设置为浮动,并且该小部件位于顶部。

如何在开始时强制 QDockWidget 浮动并位于顶部?

Ubuntu 18.04 上的 Qt 版本 5.11.1

标签: qtqt5

解决方案


推荐阅读