我正在使用GUIDE创建的基于Matlab的广泛GUI。保存GUI的完整状态似乎是一项艰巨的任务,因为通常无法有效地制作句柄结构的自包含副本。根据我在网络搜索中收集的内容,当前的解决方法是手动创建新结构,并在适当命名的字段中将GUI中所有uicontrols
的必要属性存储起来。例如,如果GUI中有uitable
,您可能希望在新结构中包含一个名为tabledata
的字段,您可以在Data
中存储uitable
。然后,我们的想法是将这个新结构保存到.mat
文件中,并通过读取此文件并执行手动复制字段的反向练习来再次加载GUI的状态。
我将上述内容称为解决方案而不是解决方案,因为对于大型GUI而言,它非常费力。如果有人有更好/更快/更短/更清洁的方式来做到这一点,请随时分享!我自己提出了一个较短的,从某种观点来看更干净的方式,但是有几个原因可以让我更喜欢上面的解决方法。无论如何,我的问题是关于这种解决方法。
最大的问题是保存和加载代码必须是包容性的:用户可以调整的每个值和属性都应该保存到新创建的结构中。对于大型GUI来说,通过手动检查所有内容来找出哪些值和属性可以调整,这是一个真正的痛苦,几乎不可能。特别是一个uicontrol
的属性可能影响一个或多个其他uicontrols
的某些属性。所以我的问题是:有没有办法概述用户可以影响给定GUI的所有值和属性?