我正在尝试使用m代码向掩码选项卡添加参数。 我们想说我想添加一个'编辑'参数和弹出式按钮参数。
到目前为止,我无法将它们放在标签中,它们会保留在一般组中。 mathworks文档未能提供工作指南:
我注意到有一个Simulink.dialog.Control类有一个' moveTo'方法,但参数不是Simulink.dialog.Control,它们是Simulink.MaskParameter实例。还有一个Simulink.dialog.parameter.Control类,但我不知道哪些对象实际上属于它,也不知道它是否可以帮助我。
感谢您的帮助,我只需要一个最小的例子来告诉我如何做到这一点。
答案 0 :(得分:0)
这是一个很好的方法:使用上面提到的'moveTo'方法。
要从刚刚创建的Simulink.MaskParameter访问参数Simulink.dialog.parameter(包含moveTo方法),您需要在Maskparameter上使用getDialogControl
复杂而复杂?是的,但那是你必须要做的。
这是一个MWE:
block = 'Untitled1/Atomic Subsystem';
wMask = Simulink.Mask.get(block);
if ~isempty(wMask)
wMask.delete();
end
wMask = Simulink.Mask.create(block);
wMask.addDialogControl('tabcontainer','tabContainer');
wTabContainer = wMask.getDialogControl('tabContainer');
wTab1 = wTabContainer.addDialogControl('tab', 'Tab1');
wTab2 = wTabContainer.addDialogControl('tab', 'Tab2');
wTab1.Prompt = 'Programatically added tab1';
wTab2.Prompt = 'Programatically added tab2';
wTextOnFirst = wTab1.addDialogControl('text', 'textOnFirst');
wTextOnFirst.Prompt = 'Some text on the first tab';
wTextOnSecond = wTab2.addDialogControl('text', 'textOnSecond');
wTextOnSecond.Prompt = 'Some text on the first tab';
wField = wMask.addParameter('Name', 'TextField' ...
, 'Type', 'edit'...
, 'Prompt', 'Programatically added text field'...
, 'Value', 'Toto'...
, 'Evaluate', 'on'...
, 'Tunable', 'off'...
, 'Enabled', 'on'...
, 'Visible', 'on'...
, 'Callback', 'disp( get_param(gcb, ''TextField''))');
wPopup = wMask.addParameter('Name', 'PopupField' ...
, 'Type', 'popup'...
, 'Prompt', 'Programatically added popup field'...
, 'TypeOptions', {'Value1', 'Value2', 'Value3'}...
, 'Evaluate', 'on'...
, 'Tunable', 'off'...
, 'Enabled', 'on'...
, 'Visible', 'on'...
, 'Callback', 'disp( get_param(gcb, ''PopupField''))');
wFieldDialog = wMask.getDialogControl('TextField');
wPopupDialog = wMask.getDialogControl('PopupField');
wFieldDialog.moveTo(wTab1);
wPopupDialog.moveTo(wTab2);