创建时,屏幕中间可以看到QDockWidget

时间:2016-03-26 20:37:04

标签: qt5.5 qdockwidget

当我创建新的QDockWidget

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

我可以在屏幕中间看到它。在那之后,我可以注意到它被放置在右侧。我在调试器下运行,所以可以理解的是事情很慢。然而,最终用户可能会在超量预订的机器上运行等。我可以创建已停靠的窗口或隐藏它直到它实际停靠吗?

在构造函数中,setupUi(this);为我的MyDockWidget设置了以下设置:

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

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

P.S。如果我将dock widget parent设置为主窗口,它会显示为unocked - 为什么?什么是正确的父母?我当前的父母是mdi window。

2 个答案:

答案 0 :(得分:0)

删除了所有功能,在Dock Widgets示例中保留默认值,并将parent设置为主窗口 - 现在工作正常。

P.S。设置功能DockWidgetFloatable |手动DockWidgetMovable,然后在Designer中也一样 - 也可以 - 一些奇怪的bug。解决。

答案 1 :(得分:0)

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