如果缺少QDockwidget,QSettings恢复会导致app冻结在show()上

时间:2014-03-07 21:12:19

标签: windows qt qdockwidget qsettings

我有一个加载.dll的Qt应用程序,后者又会将QDockwidget个小部件添加到QMainWindow。为了保持尺寸和几何形状,我将它们保存在QMainWindow

    QSettings settings;
    settings.setValue("MainWindow/geometry", saveGeometry());
    settings.setValue("MainWindow/windowState", saveState());

在启动时我回读了设置

    QSettings settings;
    restoreState(settings.value("MainWindow/windowState").toByteArray());
    restoreGeometry(settings.value("MainWindow/geometry").toByteArray());

在致电show()之前。

当我运行应用程序时,关闭它,然后删除其中一个dll(有效删除之前在启动时加载的QDockwidget),该应用程序将冻结在show()中的QMainWindow调用1}}。我可以通过删除注册表文件夹(我在Windows中)HKEY_CURRENT_USER\Software\MyCompany\MyApplication\MainWindow来正常启动应用程序,但是我丢失了存储在那里的所有其他信息。

我想要的是UI出现,好像隐藏了QDockWidget并且永远无法恢复,而不是破坏所有几何和状态信息的无意义。

有没有人见过这个问题?解决了它甚至!?!我会很感激任何提示,技巧或解决方法!

干杯

0 个答案:

没有答案