MATLAB GUI编程总结.docx
《MATLAB GUI编程总结.docx》由会员分享,可在线阅读,更多相关《MATLAB GUI编程总结.docx(10页珍藏版)》请在冰豆网上搜索。
![MATLAB GUI编程总结.docx](https://file1.bdocx.com/fileroot1/2023-6/9/2a7f1f9c-3741-4fba-82bd-32d2e5ccdc4b/2a7f1f9c-3741-4fba-82bd-32d2e5ccdc4b1.gif)
MATLABGUI编程总结
MATLABGUI编程总结
1.在命令输入窗口输入guide,MATLAB会弹出如下窗口:
然后选择BlankGUI(default),还可以选择图形存储位置。
点击确定后会弹出如下窗口:
2.左侧的一列为可添加的控件,添加时可直接将控件拖到网格区域,如下图所示:
双击每个控件可以看到每个控件的属性,如双击上图中的“选取角点”按钮,会弹出属性对话框:
重要的属性有String和Tag,String为在界面上显示出来的字符串,Tag为一个控件唯一的标识,完全代表该控件,最好将Tag改为一个有意义的名字。
将各个控件布局完成保存后,MATLAB会自动生成一个*.m文件,包含了各个控件的callback函数。
3.各个控件分析:
1)轴——axes
axes建立一个坐标轴,Tag为axes1,如下图:
axes(handles.axes1);
src=imread(‘1.jpg’);
imshow(src);
可以将“1.jpg”显示在axes1的坐标系中,如下图:
2)按钮——button
同理,button的属性对话框里的String显示按钮的名称,Tag表示按钮的唯一标识,将点击按钮所要完成的功能写入到button所对应的callback函数中,然后点击按钮即可实现所要求的功能。
3)静态文本——txt
String和Tag的所表示的含义都一样。
如果想要动态的显示文本,可通过以下代码实现:
set(handles.txt_title1,’String’,’定焦平均图像’);
静态文本String只能显示字符串String类型,如果需要显示数字,需将数字先转换成字符串——num2str,如:
set(handles.txt_title1,’String’,’num2str(100)’);
如下图:
4)可编辑文本——edit
String和Tag的所表示的含义都一样。
为获取可编辑文本输入的值,可用以下代码实现:
num_dingjiao=str2num(get(handles.edit_dj,'String'));
5)弹出式菜单——popupmenu
String和Tag的所表示的含义都一样。
其中弹出式菜单中可选的值在属性对话框中String中改变。
如下图:
为了使程序在选择不同的值时有不同的响应,可用switch-case结构,结构如下:
switchget(handles.popupmenu_electricity,'Value')
case1
…
case2
…
其中,get(handles.popupmenu_electricity,'Value')得到的是选择的是哪一个的值(1,2,3…),是序号值,如果想要得到String中所对应的值(3,5,7,9…),可由如下代码实现:
val=get(handles.popupmenu_PSFsize,’Value’);
list=get(handles.popupmenu_PSFsize,’String’);
PSF_size=str2num(list{val});
4.其他编程小技巧
1)设置某个控件是否可用
set(handles.pushbutton_selected,’Enable’,’off’);%使按钮不可用
然后在某个callback函数中写入:
set(handles.pushbutton_selected,’Enable’,’on’);%使按钮可用
这样可以引导用户操作,防止用户错误操作造成不良后果。
2)参数传递
Ø将变量声明为全局变量global,如globalmean_dj;
但采用这种方法时,需要在OpeningFunc和调用参数的callback函数中同时声明变量为全局变量。
否则参数不能正确传递。
Ø将要传递的参数放入到handles的结构体中。
handles.mean_image_bianjiao=mean_image_bianjiao;
guidata(hObject,handles);%保存数据
mean_image_dingjiao=handles.mean_image_dingjiao;
3)清除坐标轴中的内容
为了让每次显示的内容与上次的不重叠,需要每次显示之前清空上次显示的内容,可用命令cla或者clareset.
4)选择文件和保存文件
Ø选择文件
swim游泳swamswum[filenamepathname]=uigetfile({‘*.bmp’,’BMPFiles’;’*.png’,’PNGFiles’},’选取定焦图像’);
ifisequal(filename,0)||isequal(pathname,0)
understand了解understoodunderstoodreturn;
think思考thoughtthoughtend
Ø
Øchoose选择chosechosen保存文件
[filenamepathname]=uiputfile({‘*.bmp’,’BMPFiles’;’*.png’,’PNGFiles’},’保存图像’);
ifisequal(filename,0)||isequal(pathname,0)
withdraw撤退;收回withdrewwithdrawnreturn;
else
overcome克服overcameovercomefpath=[pathnamefilename];
end
imwrite(dst,fpath);
5)
6)lay放置laidlaid当前窗口切换
undergo经受underwentundergonefigure(handles.figure_OPT);
7)
8)hang挂hunghung选取图像或者窗口中的坐标点
直接调用ginput函数,会出现一个十字光标,如:
choose选择chosechosen[y_djx_dj]=ginput
(2);
其中ginput(n)中表示选取坐标点的个数;