我有一个加载.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
并且永远无法恢复,而不是破坏所有几何和状态信息的无意义。
有没有人见过这个问题?解决了它甚至!?!我会很感激任何提示,技巧或解决方法!
干杯