Matlab交互式GUI程序的设计教程 HIT版

上传人:xmg****18 文档编号:121223721 上传时间:2020-02-19 格式:DOC 页数:29 大小:631KB
返回 下载 相关 举报
Matlab交互式GUI程序的设计教程 HIT版_第1页
第1页 / 共29页
Matlab交互式GUI程序的设计教程 HIT版_第2页
第2页 / 共29页
Matlab交互式GUI程序的设计教程 HIT版_第3页
第3页 / 共29页
Matlab交互式GUI程序的设计教程 HIT版_第4页
第4页 / 共29页
Matlab交互式GUI程序的设计教程 HIT版_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《Matlab交互式GUI程序的设计教程 HIT版》由会员分享,可在线阅读,更多相关《Matlab交互式GUI程序的设计教程 HIT版(29页珍藏版)》请在金锄头文库上搜索。

1、.专业整理.Matlab交互式程序设计教程及举例一、创建GUI(Graphics User Interface)新文件和编辑已经存在的GUI文件1、在matlab命令窗口中键入guide,弹出如下的对话框:这是一个双页面对话框,分别用于创建新文件和打开已存在的GUI文件,鼠标点击相应的标题即可切换。2、图中可见“创建新的GUI”有四种模版选项,不管其它几个,点选第一项,按“OK按钮可打开如图所示的GUI编辑器其中左边是控件工具栏,用户可根据自己的程序将所需要的控件用鼠标拖至右侧的编辑区域进行布局。(用户可将鼠标悬停在各个控件图表上查看各个对象的名称)菜单栏下边是工具条,其中常用的有“”(保存当

2、前GUI文件和相应的m文件)、“”(编写相应协调运行的m文件、“”(编辑当前控件的相应属性)、“”(创建和修改用户自己的程序菜单)、“”(保存当前文件并运行改程序)。右下方主要区域是程序的界面布局窗口(灰色网格区域是布局区域,用户可根据程序需要用鼠标拖动该区域的右下角调整该区域的大小)。3、此时可以按下“”图标保存该文件(自然此时程序没有任何功能,只有一个主框架),弹出文件保存对话框,在文件名处输入一个文件名(英文字母开头),如“my1”等,扩展名自动设置为“.fig”。系统除了保存当前的界面文件外,还自动生成一个与该界面一起协调运行的“my1.m”文件,并在m文件编辑窗口中打开它。4、浏览一

3、下该文件,可以看到该文件中目前自动创建了3个函数:function varargout = my1(varargin)function my1_OpeningFcn(hObject, eventdata, handles, varargin)function varargout = my1_OutputFcn(hObject, eventdata, handles)这些函数声明和参数在后续的程序设计中不要做任何修改,切记!对我们目前的应用来说第一个函数和第三个函数的程序体也不要做任何修改。根据自己的程序涉及需要只需修改第二个函数的程序体部分。(具体的修改方式可以通过我的例子程序加以体会。)注意

4、第二个函数程序体的最后一条语句guidata(hObject, handles);该语句在后续的程序设计中将会频繁使用,现在请先记住它。5、祝贺你!你现在已经有了一个名为“my1.m”和“my1.fig”的可以运行的文件了!现在可以在matlab命令窗口中键入“my1”运行改程序,自然,除了显示一个标题为“my1”的空白窗口外,你还不能进行任何交互式控制操作(自然除了关闭该窗口外),因为你还没有写任何控制程序和添加任何控件。二、增加控件及编写相应的执行程序1、现在可以编辑运行窗口的标题栏即将“my1”修改为自己希望的标题,本例中我改为“参数a,b,n对r=acos(nt+b)的影响”。在GUI

5、设计窗口中点击“”工具条图标,弹出如下的“属性编辑框”该窗口对于后续设计中的每个控件都可以打开(通过点击“”工具条图标),它共有2列,左列是当前对象的用户可以修改的属性名(按首字母顺序排列),右列是每个属性的可以编辑的属性值,现在在左列找到“name”一项,将右侧的自动生成的“my1”改为“参数a,b,n对r=acos(nt+b)的影响”。关闭此窗口,点击“”以保存当前修改并运行程序。OK!窗口的标题栏已经变成了“参数a,b,n对r=acos(nt+b)的影响”。2、现在开始程序的布局及控制设计,先从最简单的一个控制按钮开始。拖动GUI设计窗口左侧的“Push Button”控件至右侧设计区域

6、中的自己希望的位置,放开鼠标,然后可以点选并拖动该控件的右下角改变该控件的大小,则界面中的第一个控件就绪。目前可以点击“”以保存当前修改并运行程序。发生了什么事情?运行窗口的响应位置处有了这个交互式控制按钮!点击这个按钮,除了按钮自动界面上有个形象的动态响应外,不会有任何响应,因为目前我们还没有编写任何控制程序。3、现在我们开始编写该控制程序。点击“”工具栏图标,打开m文件编辑器,浏览相应的文件,会发现文件末尾多了一个函数头:function pushbutton1_Callback(hObject, eventdata, handles)这是系统自动生成的相应按钮控件的回调函数,系统自动将其

7、命名为pushbutton1,其中pushbutton代表该控件的类别是“Push Button”,后面的阿拉伯数字代表这是用户在界面设计中所创建的第几个(该控件名称用户可以进行修改,具体修改方法见下一条说明)。现在用户可以在该函数头下边填写相应的自己所希望的控制程序。目前我们只希望用户点击按钮时进行一个简单的操作:结束当前程序并关闭该窗口。这只需如下的一条语句即可:(将之写在该函数头的下面)close;保存修改后的m文件,回到GUI设计窗口,再次点击“”运行程序,然后在运行后的窗口中点击该按钮。哈哈!如我所愿,程序安全退出了!So Easy!4、下面我们可以调整该按钮的界面显示和将自动生成的

8、“pushbutton1”名称改为自己容易记住的个性化名字。在GUI设计窗口中点击此按钮,然后点击工具条上的“”工具条图标,弹出相应的“属性编辑框”已调整它的名称和运行时的界面属性(任选)。本例中我的调整如下:(1)找到“tag”属性,将其后的“pushbutton1”改为“jieshu”;(此时如果保存修改,然后进入相应的m文件编辑窗口,可以惊喜地看到其中的最后一个函数也进行了相应的修改:(将函数头中的“pushbutton1”变成了“jieshu”)function jieshu_Callback(hObject, eventdata, handles)% hObject handle t

9、o jieshu (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)close;(2)在属性编辑框中找到“String”一栏,将后面的内容改为“结 束”;找到“FontSize”,将后面的内容改为“20”;找到“ForegroundColor”,点击左右两栏间的图标,弹出颜色选择窗口,点选自己喜欢的颜色;找到“FontName”,将后续的内容改为“楷体_GB2312”,找到“

10、FontWeight”,点击后面的图标,在下拉菜单中选择“Bold”一项。现在再运行程序,观察运行界面的变化,体会各个属性值和属性名的调整对按钮外观的影响。5、现在在GUI设计窗口中再建立一个按钮,(界面的详细设计略),本例中我讲显示字符改为了“文 档”,它的“Tag”改为了“help”.进入m文件编辑器,发现最后又增加了一个函数:function help_Callback(hObject, eventdata, handles)在该函数头下编写下列一条程序:winopen(code.pdf);其功能是将程序控制权交给windows,由windows打开引号内所指定的一个当前路径下的文件,本

11、例中我随便选了一个PDF文档,在程序执行时点击该按钮即可打开该文档。大家最后上交的综合作业中的文档及使用说明帮助文件我希望大家以这样连接的方式可以让我顺利简单地打开。6、继续界面的设计工作。为了在程序的运行界面中显示图形,需要建立图形窗口,建立的过程很简单,同样是拖动GUI设计见面中左侧的“Axis”控件至右侧的界面布局窗口的自己希望的位置,然后用鼠标拖动方式调整其大小即可。本例中我建立了两个图形窗口,其“Tag”名系统自动生成为“Axes1”和“Axes2”(用户也可同样通过属性编辑窗口修改为自己个性化的名称,本例中我没有做相应的修改)。此外,我又建立了第三个控制按钮,其“Tag”属性改为了

12、“jump”,“String”属性改为了“跳起来”,并进行了如下的布局。可以在m文件中看到此时又多了一个新的函数文件头function jump_Callback(hObject, eventdata, handles)该按钮的控制函数较为复杂,后续中我再详细说明,现在先不写任何程序。7、在布局界面上再增加两个“slider”控件(滚动条),系统自动将其“Tag”命名为“slider1”和“slider2”,我在本例中依次用它们在程序运行时控制显示图像的函数中的“a”、“b”两个参数的调整,此时浏览一下m文件,可以看到自动为每个“Slider”增加了两个函数,分别如下:function sli

13、der1_Callback(hObject, eventdata, handles)% hObject handle to slider1 (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,Value) returns position of slider% get(hObject,Min) and get(hObject,Max)

14、to determine range of slider% - Executes during object creation, after setting all properties.function slider1_CreateFcn(hObject, eventdata, handles)% hObject handle to slider1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until aft

15、er all CreateFcns called% Hint: slider controls usually have a light gray background, change% usewhitebg to 0 to use default. See ISPC and COMPUTER.usewhitebg = 1;if usewhitebg set(hObject,BackgroundColor,.9 .9 .9);else set(hObject,BackgroundColor,get(0,defaultUicontrolBackgroundColor);end% - Executes on slider movement.function slider2_Callback(hObject, eventdata, handles)% hObject handle to slider2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号