我最近不得不编写一个简单的gui来控制一些绘图。我不知道你的任务是什么,但这里有一些基本的代码让你开始。这将创建两个图形;图1有控件,图2有一个y=x^p的绘图。您可以在框中输入p的值,然后按enter注册并重新打印;然后按按钮重置为默认p=1。
function SampleGUI()
x=linspace(-2,2,100);
power=1;
y=x.^power;
ctrl_fh = figure; % controls figure handle
plot_fh = figure; % plot figure handle
plot(x,y);
% uicontrol handles:
hPwr = uicontrol('Style','edit','Parent',...
ctrl_fh,...
'Position',[45 100 100 20],...
'String',num2str(power),...
'CallBack',@pwrHandler);
hButton = uicontrol('Style','pushbutton','Parent',ctrl_fh,...
'Position',[45 150 100 20],...
'String','Reset','Callback',@reset);
function reset(source,event,handles,varargin) % boilerplate argument string
fprintf('resetting...\n');
power=1;
set(hPwr,'String',num2str(power));
y=x.^power;
compute_and_draw_plot();
end
function pwrHandler(source,event,handles,varargin)
power=str2num(get(hPwr,'string'));
fprintf('Setting power to %s\n',get(hPwr,'string'));
compute_and_draw_plot();
end
function compute_and_draw_plot()
y=x.^power;
figure(plot_fh); plot(x,y);
end
end
gui背后的基本思想是,当您操作控件时,它们调用“回调”函数,即事件处理程序;这些函数能够通过使用控件句柄和set/get方法来获取或更改其属性的控件进行交互。
希望这有帮助!