如何保存QT应用程序的UI状态?

如何保存QT应用程序的UI状态?,qt,user-interface,Qt,User Interface,我有一个具有不同组件(按钮、滑块等)的软件。我想保存所有组件状态(单击、滑块值…) 我听说有QSettings可以保存状态。但在我的软件中,我不知道存在哪些组件,因为我在运行时“随机”创建它们 正在寻找能够保存整个ui状态的解决方案。谢谢 编辑: 我的问题不清楚,所以我将进一步解释,我不需要在应用程序的两个会话之间保存状态,我只需要保存状态以备以后使用,而无需重新启动软件。例如,我可以使用findChildren获取ui组件列表。如果您“随机”创建它们,则不应保存任何状态。否?@vahancho

我有一个具有不同组件(按钮、滑块等)的软件。我想保存所有组件状态(单击、滑块值…)

我听说有QSettings可以保存状态。但在我的软件中,我不知道存在哪些组件,因为我在运行时“随机”创建它们

正在寻找能够保存整个ui状态的解决方案。谢谢

编辑:


我的问题不清楚,所以我将进一步解释,我不需要在应用程序的两个会话之间保存状态,我只需要保存状态以备以后使用,而无需重新启动软件。例如,我可以使用findChildren获取ui组件列表。

如果您“随机”创建它们,则不应保存任何状态。否?@vahancho让我解释一下,例如我的软件将创建2个复选框,当我单击“保存”按钮时,我希望我的软件保存这2个文本框的选中状态。然后我随机选中并取消选中复选框。。。然后,当我单击“加载”时,它会将复选框的选中状态更改为初始状态。但是你说,
“…我不知道存在哪些组件…”
,所以如果你保存复选框的状态,在下一次会话中你将不会有它们,你将如何恢复状态?@vahancho抱歉,我编辑了这篇文章。谢谢。我认为你也应该定义“国家”的含义。对于复选框,它可以是check state,也可以是line edit-text,等等。一般来说,您可以使用
QSettings
或您的自定义格式(JSON、YML等)循环所有现有小部件并将其属性序列化到一个文件中