필터 지우기
필터 지우기

Switching a radio button back to last value

조회 수: 2 (최근 30일)
Sam Gottheim
Sam Gottheim 2017년 9월 12일
댓글: Sam Gottheim 2017년 9월 13일
Hi,
I'd like my radiobutton to switch back to the last used value if the user of the gui answers 'no' to the dialogbox.
Here is the button/function (I have three buttons/cases in the actual code)
%buttons
FileTypeBG = uibuttongroup(ParametersFig, 'Visible','on',...
'Title','Fit Type',...
'Parent',ParametersFig,'units','normalized','outerposition',[.22 .33 .10 .12],...
'BackgroundColor',.8*[1 1 1],...
'SelectionChangedFcn',@FileType);
Filenames_B = uicontrol(FileTypeBG,'Style',...
'radiobutton',...
'String','Filenames',...
'Position',[10 3 100 30],...
'BackgroundColor',.8*[1 1 1],...
'HandleVisibility','on');
end
function FileType(src, event)
switch src.String
case 'Filenames'
FileMethod.Tag = Filenames
choice = questdlg('Are you sure?',...
'Switching to Process Data via Filenames Confirmation',...
'Yes','No','No');
switch choice
case 'Yes'
Update1
otherwise
???????????????
end
end
end

채택된 답변

Walter Roberson
Walter Roberson 2017년 9월 12일
oldv = event.OldValue;
if ~isempty(oldv)
oldv.Value = 1; %activate previous button
else
event.NewValue.Value = 0; %no previous button, just deactivate current one
end
  댓글 수: 1
Sam Gottheim
Sam Gottheim 2017년 9월 13일
I like this answer and it is probably more general and safe, but since my buttongroup always starts with one of the values selected, just using this seems to work
oldv = event.OldValue;
oldv.Value = 1;

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Rik
Rik 2017년 9월 12일
Just save the previous state to the guidata struct. You can easily load it like this:
hObject=get(scr,'Parent');
handles=guidata(hObject);

카테고리

Help CenterFile Exchange에서 Interactive Control and Callbacks에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by