체크 마크에 따라 속성을 업데이트하는 SciLab에서 GUI를 디자인하려고합니다. 예를 들어, 체크 박스는 콜백 중에 여러 텍스트 상자의 백 워드를 활성화하고 변경할 수 있습니다. 푸시 버튼을 사용하려면 특정 수의 확인란을 선택해야 할 수 있습니다.SciLab 확인란 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)')
내가 확인란을 선택하면 실행 내 콜백은 이것이다 : 나의 현재 UIControl 요소는 다음과 같습니다
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
이 코드의 문제는 두 번째 경로가 (값 것 같다
= 1) 내가 계속 체크 박스를 토글하는 경우에도 절대 실행되지 않는 것 같습니다. 나는 이렇게 출력을 얻는다 :
0
Checked = off
0
Checked = off
0
Checked = off
0
Checked = off
내가 요소를 점검하는 것을 다시 불러 오기 위해 잘못하고있는 것이 있는가? 두 경로를 모두 실행할 수 있기를 원하지만 checkbox 요소에서 값 1을 얻지 못하는 것 같습니다. 누구든지 이것에 대한 해결책을 가지고 있습니까? 감사! 사람이 궁금해하고 구글이나 뭐 통해이 발견되면