我创建了一个带有四个单选按钮的按钮组和一个使用指南的按钮。
有四个功能,每个单独写一个单选按钮。
答案 0 :(得分:6)
Button Group Callback的解决方案:SelectionChangeFCN
使用选择更改回调属性(右键单击按钮组并选择 uipanel 的查看回调 - > SelectionChangeFcn )。 eventdata 参数包含当前和先前选择的单选按钮的句柄。 eventdata 参数是一个包含以下字段的结构:
因此,取决于 eventdata.NewValue 的值;例如
function uipanel1_SelectionChangeFcn(hObject,eventdata,handles)
...
newButton=get(eventdata.NewValue,'tag');
switch newButton
case 'radiobutton1'
% code for radiobutton 1 here
case 'radiobutton2'
% code for radiobutton 2 here
...
end
...
按钮回调的解决方案
按钮的回调可能有某些内容
function button1_Callback(hObject,eventdata,handles)
h_selectedRadioButton = get(handles.uipanel1,'SelectedObject');
selectedRadioTag = get(h_selectedRadioButton,'tag')
switch selectedRadioTag
case 'radiobutton1'
case 'radiobutton2'
...
end
我还会向您推荐MATLAB文档,以获取有关Handle Graphics和构建graphical user interfaces的更多信息。
答案 1 :(得分:2)
关于GUI开始的崩溃课程......现在:
如果您正在使用guide
,那么当您保存图形mygui.fig时,M文件应自动生成为mygui.m。打开mygui.m并在单选按钮回调函数下输入您的代码。您应该在启动程序时初始化的任何变量都应在opens函数下定义。确保使用命令guidata(hObject,handles)更新每个回调结束时的句柄结构。
例如,如果您想要两个互斥的单选按钮(当您选择一个,另一个取消选择,或者当您取消选择另一个时,另一个被选中),请在其回调下输入以下代码:
function radiobutton1_Callback(hObject, eventdata, handles)
if get(handles.hObject,'Value')
set(handles.radiobutton2,'Value',0)
else
set(handles.radiobutton2,'Value',1)
end
guidata(hObject,handles);
和
function radiobutton2_Callback(hObject, eventdata, handles)
if get(hObject,'Value')
set(handles.radiobutton1,'Value',0)
else
set(handles.radiobutton1,'Value',1)
end
guidata(hObject,handles);
并初始化单选按钮1,在开启功能下选择:
set(handles.radiobutton1,'Value',1)
set(handles.radiobutton2,'Value',0)