代码之家  ›  专栏  ›  技术社区  ›  Gnurou

restoreDockWidget未还原的QDockWidget的关闭状态?

  •  1
  • Gnurou  · 技术社区  · 16 年前

    我试图在退出并重新启动应用程序时获取保存/恢复的QDockWidgets的位置和状态。我的主窗口中的流程如下所示:

    restoreState(state.toByteArray());
    
    // Dock widget gets created
    
    restoreDockWidget(dockWidget);
    

    这非常有效,但有一点除外:如果dock Widget在应用程序退出时关闭,那么在下次运行应用程序时,它们会重新出现在最后一个位置,而我希望它们具有初始隐藏状态。关于restoreDockWidget的使用,我有没有遗漏什么?或者我应该手动处理dock小部件的可见状态吗?

    更新:请注意,如果我执行以下操作:

    // Dock widget gets created
    
    restoreState(state.toByteArray());
    

    编辑:在最新的Qt版本中似乎已修复。

    1 回复  |  直到 15 年前
        1
  •  2
  •   RA.    16 年前

    检查以下Qt.4.0版本的代码:

    bool QDockAreaLayout::restoreDockWidget(QDockWidget *dockWidget)
    {
       ...
       dockWidget->show();
       // dockWidget->setVisible(!placeHolder->hidden);
       ...
    }
    

    (注意 QDockAreaLayout QMainWindow ).

    看起来您必须手动管理dock小部件的可见性。