标签:
本文档通过一个简单的实例让你学会matlab GUI的制作流程。首先,图形用户界面GUI(Graphical User Interfaces)是一种用户和计算机进行信息交流的工具和方法,由各种图形对象组成。在这种用户界面下,用户的命令和对程序的控制是通过鼠标等输入设备“选择”各种图形对象来实现的。开发者只需在由软件开发工具自动生成的程序代码中添加自己的运算或控制代码,就可以完成应用程序的设计。
步骤:
1.新建一个GUI文件:选择BlankGUI(Default)
2.进入GUI开发环境以后添加两个编辑文本框,6个静态文本框,和一个按钮,布置如下图所示;(+ = 数据1 绿色显示框等都是静态文本框)
布置好各控件以后,就可以来为这些控件编写程序来实现两数相加的功能了。
3.为数据1文本框添加代码
点击上图所示红色方框,选择edit1_Callback,光标便立刻移到下面这段代码的位置。
function edit1_Callback(hObject,eventdata, handles)
% hObject handle to edit1 (seeGCBO)
% eventdata reserved - to bedefined in a future version of MATLAB
% handles structure withhandles and user data (see GUIDATA)
% Hints: get(hObject,’String’)returns contents of edit1 as text
% str2double(get(hObject,’String’))returns contents of edit1 as a double
然后在上面这段代码的下面插入如下代码:
%以字符串的形式来存储数据文本框1的内容.如果字符串不是数字,则现实空白内容
input =str2num(get(hObject,’String’));
%检查输入是否为空. 如果为空,则默认显示为0
if (isempty(input))
set(hObject,’String’,’0’)
end
guidata(hObject,handles);
这段代码使得输入被严格限制,我们不能试图输入一个非数字。
4.为edit2_Callback添加同样一段代码
5.为计算按钮添加代码来实现把数据1和数据2相加的目的。
用3中同样的方法在m文件中找到pushbutton1_Callback代码段如下;
functionpushbutton1_Callback(hObject, eventdata, handles)
% hObjecthandle to pushbutton1 (see GCBO)
% eventdatareserved - to be defined in a future version of MATLAB
% handles structurewith handles and user data (see GUIDATA)
在上面这段代码后添加以下代码;
a = get(handles.edit1,’String‘);
b = get(handles.edit2,’String‘);
% a and b are variables ofStrings type, and need to be converted
% to variables of Number typebefore they can be added together
total = str2num(a) +str2num(b);
c = num2str(total);
% need to convert the answerback into String type to display it
set(handles.text1,’String’,c); % text1为静态文本框(最后绿色显示结果的框)的tag
guidata(hObject,handles);
程序分析:
a = get(handles.edit1,’String‘);b = get(handles.edit2,’String‘);
上面这行代码把用户输入的数据存入到变量a,变量b中;
% a,b是字符型变量,在计算两者相加之前需把他们转换为数字型
total = str2num(a) +str2num(b);
这段代码实现两数相加
c = num2str(total);
set(handles.text1,’String‘,c);
guidata(hObject,handles);
以上两行代码分别用来更新计算结果文本框和图形对象句柄,一般Callback回调函数都以guidata(hObject, handles);结束以更新数据
标签:
原文地址:http://blog.csdn.net/ghevinn/article/details/45973679