当我创建新的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。
答案 0 :(得分:0)
删除了所有功能,在Dock Widgets示例中保留默认值,并将parent设置为主窗口 - 现在工作正常。
P.S。设置功能DockWidgetFloatable |手动DockWidgetMovable,然后在Designer中也一样 - 也可以 - 一些奇怪的bug。解决。
答案 1 :(得分:0)
您可以在设置完所有功能后使用MyDockWidget->setVisible(false);
。