You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
【例 10.4.3.3-1】目标:制作一个能绘制任意图形的交互界面。它包括:可编辑文本框、弹<br />
出框、列表框。本例的关键内容是:如何使编辑框允许输入多行指令。<br />
[exm100433_1.m]<br />
clf reset % <br />
set(gcf,'unit','normalized','position',[0.1,0.4,0.85,0.35]);<br />
set(gcf,'defaultuicontrolunits','normalized');<br />
set(gcf,'defaultuicontrolfontsize',11);<br />
set(gcf,'defaultuicontrolfontname','隶书');<br />
set(gcf,'defaultuicontrolhorizontal','left');<br />
set(gcf,'menubar','none');<br />
str='通过多行指令绘图的交互界面';<br />
set(gcf,'name',str,'numbertitle','off');<br />
h_axes=axes('position',[0.05,0.15,0.45,0.70],'visible','off');<br />
uicontrol(gcf,'Style','text',...<br />
'position',[0.52,0.87,0.26,0.1],...<br />
'String','绘图指令输入框');<br />
hedit=uicontrol(gcf,'Style','edit',... % <br />
'position',[0.52,0.05,0.26,0.8],...<br />
'Max',2); % <br />
hpop=uicontrol(gcf,'style','popup',... % <br />
'position',[0.8,0.73,0.18,0.12],...<br />
'string','spring|summer|autumn|winter');% <br />
hlist=uicontrol(gcf,'Style','list',... % <br />
'position',[0.8,0.23,0.18,0.37],...<br />
'string','Grid on|Box on|Hidden off|Axis off',...% <br />
'Max',2); % <br />
hpush=uicontrol(gcf,'Style','push',... % <br />
'position',[0.8,0.05,0.18,0.15],'string','Apply');<br />
set(hedit,'callback','calledit(hedit,hpop,hlist)'); % <br />
set(hpop,'callback','calledit(hedit,hpop,hlist)'); % <br />
set(hpush,'callback','calledit(hedit,hpop,hlist)'); % <br />
[calledit.m]<br />
function calledit(hedit,hpop,hlist)<br />
ct=get(hedit,'string'); % <br />
vpop=get(hpop,'value'); % <br />
vlist=get(hlist,'value'); % <br />
if ~isempty(ct) % <br />
eval(ct') % <br />
popstr={'spring','summer','autumn','winter'}; % <br />
liststr={'grid on','box on','hidden off','axis off'};% <br />
invstr={'grid off','box off','hidden on','axis on'};% <br />
colormap(eval(popstr{vpop})) % <br />
vv=zeros(1,4);vv(vlist)=1;<br />
for k=1:4<br />
if vv(k);eval(liststr{k});else eval(invstr{k});end<br />
end<br />
end<br />
14