我正在尝试在SciLab中设计一个图形用户界面,它会根据选中框的状态更新其属性。例如:在回调期间,复选框可能会启用并更改几个文本框的背景;或者按下按钮可能需要选择一定数量的复选框。
我的问题是,在回调期间执行指令时,我似乎无法开发流程控制语句来取决于复选框的状态。我的当前UIControl元素如下所示:
这段代码的问题似乎在于第二个路径(Value = 1)似乎从未运行,即使我不断切换复选框。 我得到了如下输出:
我的问题是,在回调期间执行指令时,我似乎无法开发流程控制语句来取决于复选框的状态。我的当前UIControl元素如下所示:
handles.chkS11En=uicontrol(f,'unit','normalized','BackgroundColor',[0.8,0.8,0.8],'Enable','on','FontAngle','normal','FontName','helvetica','FontSize',[12],'FontUnits','points','FontWeight','normal','ForegroundColor',[0,0,0],'HorizontalAlignment','center','ListboxTop',[],'Max',[1],'Min',[0],'Position',[0.02140625,0.791119360625398,0.0803125,0.0369667],'Relief','flat','SliderStep',[0.01,0.1],'String','S11','Style','checkbox','Value',[0],'VerticalAlignment','middle','Visible','on','Tag','chkS11En','Callback','chkS11En_callback(handles)')
当我选中复选框时,我的回调函数如下:
cS11En = findobj('tag', 'chkS11En'); // checkbox option
tS11MagUpperBound = findobj('tag', 'txtS11MagUpperBound'); //edit box that is controlled
mprintf("%d\n",cS11En.Value);
if cS11En.Value == [1] then
mprintf("Checked = on \n");
set(tS11MagUpperBound,'BackgroundColor',[1,1,1]);
set(tS11MagUpperBound,"Enable",'on');
set(cS11Save,"Enable",'on');
elseif cS11En.Value == [0] then
mprintf("Checked = off \n");
set(tS11MagUpperBound,'BackgroundColor',[0.8,0.8,0.8]);
set(tS11MagUpperBound,'Enable','off');
set(cS11Save,"Enable",'off');
end
这段代码的问题似乎在于第二个路径(Value = 1)似乎从未运行,即使我不断切换复选框。 我得到了如下输出:
0
Checked = off
0
Checked = off
0
Checked = off
0
Checked = off
请问我在重新加载元素时是否做错了什么?我想能够运行两个路径,但似乎从复选框元素无法获得值为1。有没有人有解决方案?谢谢!