Следующий код создает 3 радиообъектива. Функция выбора гарантирует, что соответствующее содержание показано:Matlab R2015b Выбор радиолюбителя по коду
function myui
bg = uibuttongroup('Visible','off',...
'Position',[0 0 .2 1],...
'SelectionChangedFcn',@bselection);
% Create three radio buttons in the button group.
r1 = uicontrol(bg,'Style','radiobutton',...
'String','Option 1',...
'Position',[10 350 100 30],...
'HandleVisibility','off');
r2 = uicontrol(bg,'Style','radiobutton',...
'String','Option 2',...
'Position',[10 250 100 30],...
'HandleVisibility','off');
r3 = uicontrol(bg,'Style','radiobutton',...
'String','Option 3',...
'Position',[10 150 100 30],...
'HandleVisibility','off');
% Make the uibuttongroup visible after creating child objects.
bg.Visible = 'on';
function bselection(source,callbackdata)
display(['Previous: ' callbackdata.OldValue.String]);
display(['Current: ' callbackdata.NewValue.String]);
display('------------------');
end
end
Я хотел бы, чтобы изменить выбор И содержание, показанное за код (пользователь не щелкает). можно установить выбор RadioButton на код, как:
set(bg, 'SelectedObject', r2);
Это рисует синюю точку для правильного RadioButton (кажется выбран), однако, правильное содержание не показано. Я предполагаю, что мне нужно вызвать «SelectionChangedFcn» вручную, чего я не могу, поскольку он требует от «callbackdata», который является классом «matlab.ui.eventdata.SelectionChangedData» без документации.
Вопрос: Должен ли я сам создать callbackdata для вызова SelectionChangedFcn 'снаружи' при кодировании изменения радиообмена или есть другой способ?
Вопрос2: Я бы набросал крошечный намек на то, почему/когда «HandleVisibility» полезна или нет, документация MatLab слишком загадочна для меня.