【问题标题】:Glimpse of QDockWidget in the middle of the screen when gets created创建时在屏幕中间瞥见 QDockWidget
【发布时间】:2016-03-26 20:37:03
【问题描述】:

当我创建一个新的QDockWidget

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

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

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

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

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

附:如果我将停靠小部件父级设置为主窗口,它会显示为未停靠 - 为什么?什么是正确的父母?我现在的父母是mdi window。

【问题讨论】:

    标签: qt5.5 qdockwidget


    【解决方案1】:

    删除了所有功能,保留了 Dock 小部件示例中的默认设置,并将父窗口设置为主窗口 - 现在可以正常工作。

    附:设置功能 DockWidgetFloatable | DockWidgetMovable 手动,然后在 Designer 中相同 - 也可以 - 一些奇怪的错误。解决了。​​

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-06
        相关资源
        最近更新 更多