GUI界面有元件拖动和编程代码两种设计方式,元件拖动比较直观,编程代码更加细致。本来搞了一个包含各种元件的项目,最后发现代码比较长,一下子扔出来对初学者非常不友好,所以我们分开一段一段来添加,以元件作为单位,由易到难。
hf=figure('position',[200 200 600 400],'Name','uicontrol1','NumberTitle','off');%窗口名字uicontrol1,隐藏窗口序号
ha=axes('position',[0.4 0.1 0.5 0.7],'Box','on');%开一个区域
hbsin=uicontrol(hf,...%在窗口里面添加普通按钮
'Style','pushbutton',...%sin按钮
'Position',[50 140 100 30],...
'String','Plot sin(x)',...
'CallBack',...
['hold off;'...
'subplot(ha);'...%在区域里面作图
'x=0:0.1:4*pi;'...
'plot(x,sin(x));'...
'axis([0 4*pi -1 1]);'...
'grid on;'...
'xlabel("x");'...
'ylabel("y=sin(x)");'...
]);
hbcos=uicontrol(hf,...
'Style','pushbutton',...%cos按钮
'Position',[50 100 100 30],...
'String','Plot cos(x)',...
'CallBack',...
['hold on;'...
'subplot(ha);'...
'x=0:0.1:4*pi;'...
'plot(x,cos(x));'...
'axis([0 4*pi -1 1]);'...
'grid on;'...
'xlabel("x");'...
'ylabel("y=cos(x)");'...
]);
hbclose=uicontrol(hf,...%close按钮
'Style','pushbutton',...
'Position',[50 60 100 30],...
'String','close',...
'CallBack','close(hf)');
实验效果
hrboxoff=uicontrol(gcf,'Style','radio',...%选中关闭密封坐标轴单选按钮
'Position',[50 180 100 20],...%位置
'String','set box off',...
'Value',0,...
'CallBack',[...
'set(hrboxon,"Value",0);'...%显示选中效果
'set(hrboxoff,"Value",1);'...
'set(gca,"Box","off");']);
hrboxon=uicontrol(gcf,'Style','radio',...
'Position',[50 210 100 20],...
'String','set box on',...
'Value',1,...
'CallBack',[...
'set(hrboxon,"Value",1);'...
'set(hrboxoff,"Value",0);'...
'set(gca,"Box","on");']);
实验效果
在放入其他元件之前,框架应该先定义,不然会被覆盖。把下面这句代码放在单选按钮前面。
hfr=uicontrol(gcf,'style', 'frame','Position',[48 178 104 58]);%添加框架
实验效果