此分界线下面为GUI部分:uicontrol:Style:[
{pushbutton} | togglebutton | radiobutton | checkbox | edit | text
| slider | frame | listbox | popupmenu
]=================================================popup控件:设置选项:'string','a|b|c'获取选项:get(h,Value),返回值:1,2,3...=================================================uimenu:f=uimenu(gcf,'Label',
'XXX','Callback',
'XXXX');子菜单:f1=uimenu(f,.....);position=1,2,3可以指定位置快捷键:label中加&(结果为alt+按键)=================================================鼠标右键出现的菜单:uicontextmenu,用法同menurwm=uicontextmenu;uimenu(rwm,'Label','XXX'...)=================================================竖着的slider:修改宽高比=================================================复选框:set(handles.XX,'checked','on')%or
'off'=================================================Import菜单功能:callback中填写uiimport=================================================print菜单功能:callback中填写printdlg=================================================退出的菜单功能:selection
= questdlg(['是否关闭',get(gcf,'Name'),'窗口'], ...
['Close
',get(gcf,'Name'),'...'], ...
'是','否','是');if
strcmp(selection,'否')
return;else
delete(gcf);end=================================================help菜单:写一个html文件,然后:wed(['file:'
which('XXX.html')])=================================================ToggleButton/CheckBox:if
get(gcbo,'Value')==1;
%TODOelse
%TODOend=================================================ListBox:获取字符串:get(h,'string')获取选中的索引:get(h,'value')=================================================RadioButton批量设置值为0:将各个句柄值设置为:Radio_h(1),Radio_h(2)...if
get(gcbo,'Value')==1
set(Radio_h(Radio_h ~= gcbo),
'value',0)end=================================================EditText多行输入:Max设置为2(保证Max-min>1)=================================================ListBox多选:Max设置为2(保证Max-min>1)=================================================GUI生成exemcc
-m
xxxx执行exe文件:!xxxx=================================================统一管理GUI
CallBack函数:function
gui_fcn(action)switch action
case 'Close' case
'Peaks' case
'Export'
otherwiseendcallback中填写类似:gui_fcn
Close=================================================鼠标移动到控件上的提示字符串:tooltipstring=================================================添加图片:himge
= findobj('tag','pic1');axes(himge);logo
=
imread('1.jpg');image(logo);set(himge,'visible','off')set(himge,'handlevisibility','off')=================================================图标显示在按钮上:A
= imread('2.jpg');bu =
findobj('tag','logobutton');set(bu,'cdata',A);=================================================对于figure,等待按键:fig_h=figure(1);waitforbuttonpress;%(阻塞)if
get(fig_h,'CurrentCharacter')==13
%todoend按键:tab(9),回车(13),ESC(17),上下左右(28-31),空格(32)code
=
double(get(fig_h,'CurrentCharacter'))对于waitforbuttonpress,返回0表示有鼠标点击,返回1表示键盘按键=================================================获取按键function
figure1_KeyPressFcn(hObject, eventdata, handles)key =
get(hObject,'CurrentCharacter');如果不在KeyPressFcn中,则是无时无刻都在等待获取,比如while
double(get(F,'CurrentCharacter'))~=27
set(edit1,'String',datestr(now));
pause(.1);end=================================================currentkey:返回值与CurrentCharacter不同,比如上下左右返回是uparrow,downarrow等,F1返回是f1,小键盘数字键1返回是numpad1等。=================================================selectiontype:还可以返回alt,shift等按键信息返回extent表示shift+左键或同时按下左右键返回normal表示左键返回alt表示alt或者右键返回open表示双击左键或者右键=================================================currentpoint:返回鼠标最后单击或者释放的位置=================================================进度条:h
= waitbar(0,'进行中');for i = 1 :10000
waitbar(i/10000,h);endclose(h)=================================================群组按钮实例:(可用于制作工具栏)fig=figure('Position',[200
200 250 120],'Name','btngroup 絛ㄒ',...
'NumberTitle','off','Menubar','none');icons =
['text(.5,.5,''B1'',''HorizontalAlignment'',''center'')'
'text(.5,.5,''B2'',''HorizontalAlignment'',''center'')'];callbacks
= ['disp(''B1'')';'disp(''B2'')'];btngroup(fig,'GroupID',
'TestGroup', 'ButtonID', ['B1';'B2'], 'Callbacks', callbacks,
...'Position', [.4 .45 .25 .3], 'IconFunctions',
icons);=================================================按下左键开始才开始定义消息函数:建立m文件:function
mouse(action)switch action
case 'start'
set(gcbf,'windowbuttonmotionfcn','mouse
move');
set(gcbf,'windowbuttonupfcn','mouse
stop'); case
'move'
point =
get(gca,'CurrentPoint');
%%%%%%%%%%%%%%%%
case 'stop'
set(gcbf,'windowbuttonmotionfcn','');
set(gcbf,'windowbuttonupfcn','');end在axis的
buttondownfcn中写:mouse
start=================================================设置F1的函数:set(gcf,'HelpFcn','XXXXXX');=================================================listbox显示当前目录下的所有文件列表,点击并加载文件list_h=uicontrol('style',
'listbox','Position',[25 10 200
250]);d=dir;set(list_h,'string',{d.name},'Callback',...['Value
= get(gcbo,''Value'');',...'String =
get(gcbo,''String'');',...'String =
cellstr(String);',...'uiimport(String{Value})']);=================================================二维列表:f
= figure;data = rand(3);colnames =
{'X-Data', 'Y-Data', 'Z-Data'};t = uitable(f, 'Data',
data, 'ColumnName', colnames, ...'Position', [20 20
260
100]);=================================================阵列方式来排控件示例:figure('name',
'uiarray', 'numbertitle', 'off');figPos = get(gcf,
'pos');bigFramePos = [0 0 figPos(3)
figPos(4)];m = 4; n = 3;border = 20;
spacing = 10;style = str2mat('push', 'slider',
'radio', 'popup', 'check');callback = 'disp([''This is
a '' get(gco, ''style'')])';string = str2mat('one',
'two', 'three', 'four-1|four-2|four-3',
'five');uiarray(bigFramePos, m, n, border, spacing,
style, callback,
string);=================================================文件夹树控件:uitree('root','d:');uitree('root',0)可以构造关于控件关系的树=================================================超简易选择对话框:select
=
menu('提示信息','选项1','选项2');=================================================提示对话框:(换行用n)msgbox('信息标题','对话框标题','help')msgbox('信息标题','对话框标题','warn')msgbox('信息标题','对话框标题','error')msgbox('信息标题','对话框标题','custom')%自己设计图标示例:Data=1:256;Icon=(Data'*Data)/128;msgbox('信息标题','对话框标题','custom',Icon,copper(128))=================================================模态对话框方式:h
=
msgbox('信息标题','对话框标题');waitfor(h);=================================================设置对话框背景颜色:set(h,'color','w');=================================================修改提示对话框字体:通过findall语句来实现:hm=msgbox('信息标题','对话框标题','error');set(hm,'color','w');th=findall(hm,'Type','Text');set(th,'color','r');set(th,'FontSize',24);=================================================问题选择对话框:(返回的是字符串)Button=questdlg('请选择','标题','选项0',
'默认选项','选项2','默认选项');最多3个选项=================================================输入对话框:answer=inputdlg(提示语,dlgTitle,对话框间距,默认值);多个需要输入的选项提示语可以用{'问题1','问题2'},返回值答案用answer{i}=================================================输入对话框编辑cancel选项:if
isempty(answer)
XXXXXXXXXend=================================================列表选择对话框:str
= {'A', 'B', 'C', 'D', 'E'};[s,ok] =
listdlg('PromptString','请选择','name','title','SelectionMode','single',...'ListString',str,
'fus',10, 'ListSize',[160
80]);ok为1表示有选,0表示没有选择s是索引其中okstring,cancelstring设置按钮的文字=================================================设置颜色对话框:text_handle=uicontrol('Style','text','Position',[250
250 120
20],...'String','被设置的text');uisetcolor(text_handle,'标题');=================================================设置字体对话框:figure;hText=gtext('12345');uisetfont(hText,
'Update
Font');=================================================添加工具栏图标:uipushtool('Separator','on','TooltipString','提示信息',...'ClickedCallback','msgbox(''XXX'',''XXXX'')','CData',repmat(magic(12)/12^2,[1
1
3]));=================================================偏好设置对话框:uigetpref=================================================设置定时器:t
=
timer('Period',1.0,'ExecutionMode','fixedrate','StartDelay',0.5,'timerfcn','XXXX');start(t);timerfcn调用方法:{‘functionname’,par1,par2...}functionname的定义是:function
functionname(t,event,para1,para2...)timer中tasksexecuted表示重复执行的次数