MATLAB GUI入门实例详解,让你轻松掌握GUI.docx
Matlab实例讲解本文档通过一个简单的实例让你学会matlab GUI的制作流程。首先,图形用户界面 GUI(Graphical User Interfaces)是一种用户和计算机进行信息交流的工具和方法,由各种图形 对象组成。在这种用户界面下,用户的命令和对程序的控制是通过鼠标等输入设备“选择” 各种图形对象来实现的。开发者只需在由软件开发工具自动生成的程序代码中添加自己的运 算或控制代码,就可以完成应用程序的设计。例建立加法计算器程序步骤:1. 新建一个 GUI 文件:选择 Blank GUI(Default)2. 进入GUI开发环境以后添加两个编辑文本框,6个静态文本框,和一个按钮,布置如下 图所示;(+ =数据1绿色显示框等都是静态文本框)布置好各控件以后,就可以来为这些控件编写程序来实现两数相加的功能了。ff is3.为数据1文本框添加代码点击上图所示红色方框,选择edit1_Callback,光标便立刻移到下面这段代码的位置。function edit1_Callback(hObject, eventdata, handles)% hObject handle to edit1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles 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);%检查输入是否为空.如果为空,则默认显示为0if (isempty(input)set(hObject,String,0)endguidata(hObject, handles);这段代码使得输入被严格限制,我们不能试图输入一个非数字。4. 为edit2_Callback添加同样一段代码5. 为计算按钮添加代码来实现把数据1和数据2相加的目的。用3中同样的方法在m文件中找到pushbutton1_Callback代码段如下;function pushbutton1_Callback(hObject, eventdata, handles)% hObject handle to pushbutton1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)在上面这段代码后添加以下代码;a = get(handles.edit1,String,);b = get(handles.edit2,String,);% a and b are variables of Strings type, and need to be converted% to variables of Number type before they can be added togethertotal = str2num(a) + str2num(b);c = num2str(total);% need to convert the answer back 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);结束以更新数据