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

如何保存自定义DockWidgets

  •  3
  • Tobias  · 技术社区  · 16 年前

    我想用我的主窗口提供的savestate()/restorepresse()函数保存我的自定义dockwidget(继承自qdockwidget)。

    我有两个问题: 1。如何保存和恢复DockWidget?
    -我已经尝试将自定义DockWidgets注册为qmetype,并实现默认的构造函数、复制构造函数、析构函数和流式运算符。
    2。如何识别加载的DockWidget?
    -例如:如果保存了2个DockWidget,我用restorepresse()加载它们,有没有方法获得指向这些加载的widget的指针?

    谢谢, 托拜厄斯

    3 回复  |  直到 16 年前
        1
  •  2
  •   Adam W    16 年前

    你读过吗 QMainWindow::saveState 文档?

    对象的名称是否唯一?( QObject::setObjectName )

    作为附带说明,QObjects不应具有复制构造函数,请参见 Q_DISABLE_COPY

        2
  •  1
  •   Tobias    16 年前

    我已经解决了问题2:
    很容易…QLIST < QDOKWIDGET* > dockWidgetList=findchildren < QDockWidget* > ();
    但加载后列表当前为空,因为没有加载任何小部件;)

        3
  •  1
  •   Gnurou    16 年前

    似乎你误解了一些关于重新声明的内容——它不会重新创建你的Dock小部件(它怎么做?)但只会恢复它们的位置和状态(隐藏、空闲或停靠)。在调用restorepresse之前,您仍然需要手动创建Dock小部件。