创建时屏幕中间的 QDockWidget 一瞥

Glimpse of QDockWidget in the middle of the screen when gets created

当我创建一个新的 QDockWidget

  myWidget = new MyDockWidget(this);
  MyMainWindow::instance()->addDockWidget(Qt::RightDockWidgetArea, mSettings);

我可以在屏幕中间看到它。之后我可以注意到它停靠在右边。我在调试器下 运行ning,所以可以理解,事情很慢。尽管如此,最终用户可能 运行 在超额预订的机器上等。我可以创建已经停靠的 window 还是隐藏它直到它实际停靠?

在构造函数中,我的 MyDockWidgetsetupUi(this);,设置如下:

MyDockWidget->setFloating(true);
MyDockWidget->setFeatures(QDockWidget::AllDockWidgetFeatures);
MyDockWidget->setAllowedAreas(Qt::RightDockWidgetArea);

那么为什么它在开始时出现在中心?如何解决这个问题?

P.S。如果我将停靠小部件 parent 设置为主要 window 它似乎未停靠 - 为什么?什么是正确的parent?我目前的 parent 是 mdi window.

删除了所有功能,像 Dock Widgets 示例中那样保留默认设置,并将父级设置为主要 window - 现在工作正常。

P.S。设置功能 DockWidgetFloatable |手动 DockWidgetMovable,然后在 Designer 中相同 - 也有效 - 一些奇怪的错误。已解决。

您可以在设置所有功能后直接使用MyDockWidget->setVisible(false);