创建函数 createMyToolboxFactoryTree,该函数为工具箱 mytoolbox 创建出厂设置树。
function myToolboxFactoryTree = createMyToolboxFactoryTree()
myToolboxFactoryTree = matlab.settings.FactoryGroup.createToolboxGroup('mytoolbox', ...
'Hidden',false);
toolboxFontGroup = addGroup(myToolboxFactoryTree,'font','Hidden',false)
addSetting(toolboxFontGroup,'MyFontSize','FactoryValue',11,'Hidden',false, ...
'ValidationFcn',@matlab.settings.mustBeNumericScalar)
addSetting(toolboxFontGroup,'MyFontColor','FactoryValue','Black', ...
'Hidden',false,'ValidationFcn',@matlab.settings.mustBeStringScalar);
end
使用空的设置文件升级程序对象创建函数 createMyToolboxSettingsFileUpgraders。
function upgraders = createMyToolboxSettingsFileUpgraders()
upgraders = matlab.settings.SettingsFileUpgrader.empty;
end
为工具箱创建 settingsInfo.json 文件。指定 mytoolbox 为根设置组名称,createMyToolboxFactoryTree 为设置树创建函数,createMyToolboxSettingsFileUpgraders 为设置树升级函数。将 settingsInfo.json 放入工具箱 resources 文件夹中。
{
"ToolboxGroupName" : "mytoolbox",
"Hidden" : false,
"CreateTreeFcn" : "createMyToolboxFactoryTree",
"CreateUpgradersFcn" : "createMyToolboxSettingsFileUpgraders"
}
将包含设置树创建函数和工具箱 resources 文件夹的文件夹添加到 MATLAB® 路径。然后,加载 mytoolbox 的出厂设置树。
matlab.settings.reloadFactoryFile('mytoolbox');
使用 settings 函数访问设置树的根,并为 MyFontSize 设置设置个人值。
s = settings;
s.mytoolbox.font.MyFontSize.PersonalValue = 15;
将 createMyToolboxFactoryTree 中的设置名称更改为 FontSize 和 FontColor。
function myToolboxFactoryTree = createMyToolboxFactoryTree()
myToolboxFactoryTree = matlab.settings.FactoryGroup.createToolboxGroup('mytoolbox', ...
'Hidden',false);
toolboxFontGroup = addGroup(myToolboxFactoryTree,'font','Hidden',false)
addSetting(toolboxFontGroup,'FontSize','FactoryValue',11,'Hidden',false, ...
'ValidationFcn',@matlab.settings.mustBeNumericScalar)
addSetting(toolboxFontGroup,'FontColor','FactoryValue','Black', ...
'Hidden',false,'ValidationFcn',@matlab.settings.mustBeStringScalar);
end
将 createMyToolboxSettingsFileUpgraders 函数中两个设置的重命名记录为对 mytoolbox 的版本 2 的设置树的更改。
function upgraders = createMyToolboxSettingsFileUpgraders()
upgraders = matlab.settings.SettingsFileUpgrader('Version2');
move(upgraders,'mytoolbox.font.MyFontSize','mytoolbox.font.FontSize');
move(upgraders,'mytoolbox.font.MyFontColor','mytoolbox.font.FontColor');
end
重新加载 mytoolbox 的出厂设置树。
matlab.settings.reloadFactoryFile('mytoolbox');
使用 settings 函数访问设置树的根,并验证 FontSize 设置的个人值是否已从 MyFontSize 设置中正确移出。
s = settings;
s.mytoolbox.font.FontSize
ans =
Setting 'mytoolbox.font.FontSize' with properties:
ActiveValue: 15
TemporaryValue:
PersonalValue: 15
FactoryValue: 11
获取升级到 mytoolbox 版本 2 的结果。
matlab.settings.loadSettingsCompatibilityResults('mytoolbox','Version2')
ans =
ReleaseCompatibilityResults with properties:
VersionLabel: "Version2"
PreValidationExceptions: [0×0 matlab.settings.ReleaseCompatibilityException]
Results: [1×1 matlab.settings.VersionResults]