[MATLAB]用户界面设计工具(Callback函数实现)
程序员文章站
2022-06-06 15:34:58
...
本实验源于中南大学的《科学计算与MATLAB语言》,博文主要讲述图形用户界面设计工具,以及定义回调函数。
图形用户界面设计模板
在命令行输入:
guide
里面用四个选项
- Blank GUI(Default)
- GUI with Uicontrols
- GUI with Axes and Menu
- Modal Wuestion Dialog
然后再次单击空白Blank GUI
进入到这里后,然后随意拖拉下控件熟悉熟悉流程,比如下图:
图形用户界面设计工具
对象属性检查器
这个窗口,可以双击控件获得,然后尝试修改"string"的值,例如:
然后整体修改变成这样,箭头标出的是,是需要修改tag值哟:
菜单编辑器
菜单编辑器构成
- 工具栏
- 菜单列表
- 菜单属性面板
图形窗口的MenuBar属性
- figure
- none
点击这个之后,新建菜单
然后新建,
可以设置菜单。
名字修改成下图
tag值修改成下图
其中,
这个按钮要选中。最后的图效果
对象浏览器
这个浏览器可以查看,对象内部设置。
回调属性与回调函数
回调属性
- Callback属性:按钮类控件和菜单项的单击事件的默认回调属性。
- ButtonDownFcn属性:定义单击鼠标键按下的响应。
- KeyPressFcn属性:定义键盘键按下的响应。
- SelectionChangeFcn属性:定义改变选项的响应。
回调函数框架
function 对象标识_Callback(hObject,eventdata,handles)
其中,hObject为发生事件的源控件,eventdata为事件数据,handles保存图形界面中所有对象的句柄。
例如–绘制图性的Callback
function pushbutton1_Callback(hObject, eventdata, handles)
A=eval(handles.editfz.String);
f=eval(handles.editpl.String)/50;
theta=eval(handles.editxj.String)/180*pi;
x=linspace(0,2*pi,60);
if handles.OpSin.Value==1
y=A*sin(f*x+theta);
else
y=A*cos(f*x+theta);
end
plot(x,y);
handles.PStyle.Enable='On';