我正在尝试在matlab / simulink掩码(GUI)中设置复选框的Enabled状态,具体取决于另一个复选框的状态。换句话说:如果选中复选框A,则复选框B将被禁用(灰色)。 我试图在复选框A:
上使用回调函数box_A = get_param(gcb, 'checkBoxA');
m = Simulink.Mask.get(gcb);
box_B = m.getParameter('checkBoxB');
if strcmp(box_A, 'on')
box_B.set('Enabled', 'off');
end
但是当我打开面具时,我收到一个错误:
- >评估TEST块(掩码)'test_simulink / Test test'的'MaskCallback'回调时出错。 - >为方法'set'指定的输入无效 - >尝试在MaskCallbacks中修改块'test_simulink / Test test'的掩码参数名称。不允许将掩码参数名称更改为MaskCallbacks的一部分。
我如何实现我的初步目标?
答案 0 :(得分:1)
我终于找到了解决方案;诀窍不是使用set函数,而是分配给Enabled属性:
box_A = get_param(gcb, 'checkBoxA');
m = Simulink.Mask.get(gcb);
box_B = m.getParameter('checkBoxB');
if strcmp(box_A, 'on')
box_B.Enabled = 'off';
else
box_B.Enabled = 'on';
end