matlab中gui教程
- 格式:doc
- 大小:2.05 MB
- 文档页数:24
matlab创建gui界面的方法
在MATLAB中创建GUI界面可以使用MATLAB的GUI设计工具。
下面是
一些基本步骤:
1. 在MATLAB命令窗口中输入`guide`,然后按Enter键打开GUI设计器。
2. 在GUI设计器中,选择一个预定义的模板或创建一个新的GUI。
3. 使用GUI设计器中的工具栏和属性编辑器来添加和配置GUI组件,例如
按钮、文本框和滑动条等。
4. 设置每个组件的回调函数,以便在用户与组件交互时执行特定的操作。
5. 保存并运行GUI,以测试其功能和性能。
需要注意的是,GUI设计器是MATLAB的一个可选组件,因此需要确保已
安装该组件才能使用它。
此外,创建复杂的GUI可能需要一定的MATLAB
编程经验和对GUI组件的深入了解。
去年做了一些关于Matlab GUI的程序,现在又要做相关的东西,回想起来,当时很多经验没有记录下来,现在回顾起来始终觉得不爽,所以从现在开始,一定要勤写记录。
从简单的例子说起吧。
创建Matlab GUI界面通常有两种方式:1,使用 .m 文件直接动态添加控件2. 使用GUIDE 快速的生成GUI界面显然第二种可视化编辑方法算更适合写大型程序。
一:创建GUI1.在 .m文件中动态添加例如h_main=figure(‘name’,‘a demo of gui design’,‘menubar’,‘none’,…'numbertitle','off','position',[100 100 300 100]);h_edit=uicontrol('style','edit','backgroundcolor',[1 1 1],'position',[20 20 50 20],...'tag','myedit','string','1','horizontalalignment','left');h_but1=uicontrol('style','pushbutton','position',[20 50 50 20],'string','INC',...'callback',['v=eval(get(h_edit,''string''));',...'set(h_edit,''string'',int2str(v+1));']);h_but2=uicontrol('style','pushbutton','position',[80 50 50 20],'string','DEC',...'callback',['v=eval(get(h_edit,''string''));','set(h_edit,''string'',int2str(v-1));']);2.使用GUIDE帮助创建GUI在Command 里面输入GUIDE 或者从菜单里面,或者从快捷按钮均可进入GUIDE新建并且保存后,会生成相应的fig文件和m文件,在Layout编辑视图,可以使用如下工具:Layout Editor:布局编辑器;Alignment Tool:对齐工具;Property Inspector:对象属性观察器;Object Browser:对象浏览器;Menu Editor:菜单编辑器。
MATLAB实用教程GUI
MATLAB是一种非常强大的数值计算软件,广泛应用于科学计算、工程设计和数据分析等领域。
其中的GUI(Graphical User Interface,图形用户界面)功能可以帮助用户设计出直观、交互性强的界面,提高使用效率和易用性。
本篇教程将介绍如何利用MATLAB的GUI功能创建一个实用的界面。
首先,打开MATLAB软件,并在"Home"选项卡中选择"New Script"创建一个新的脚本。
在脚本中,我们将使用MATLAB的GUI工具箱中的"App Designer"来创建界面。
除了按钮的点击事件外,还可以处理其他各种事件。
例如,通过为文本框添加"ValueChangedFcn"回调函数,可以在文本框内容发生更改时执行相应的操作。
在界面设计完成后,可以通过点击"Run"按钮来运行应用程序,并与用户进行交互。
可以输入文本、选择菜单项、点击按钮等等,然后根据用户的输入做出相应的反应。
通过与用户的交互,可以进行各种有用的计算和处理。
值得一提的是,MATLAB的GUI功能还支持将用户界面保存为独立的应用程序,并与其他MATLAB代码集成。
这意味着界面所包含的各种计算和分析能力可以通过编写MATLAB函数来实现,然后在界面的回调函数中调用这些函数。
这为用户提供了更大的自由度和灵活性,以满足不同需求的应用场景。
如果没有图形用户界面(GUI)我们只能从命令行(Command Window)中调用相关程序,这相对比较繁琐,并且不是所有用户都是这个能力。
就好比计算机的 DOS 系统,在有windows的情况下,您会选择DOS吗?当然我们也不排除骨灰级的人物!在本节教程我们主要针对没有G UI 创建和使用经历的网友,但是必要的M ATLAB基础知识是需要的。
在教程中我们将创建一个简单的GUI程序,它执行两个数的加法运行,然后显示其运算结果。
一、打开和创建GUI界面1、首先打开Matlab,在Command Window中输入guide回车2、此时打开GUI编辑器GUIDE(GUI Developer的缩写)2.1 界面上有两个标签也“Creat New GUI”和“Open Existing GUI”如果创建新的GUI此时我们选择第一个标签页,但如果打开其它已经存在的GUI 就点击第二个标签吧2.2 这里我们选择第一个标签下的“Blank GUI”(空白 GUI),下面还有几个系统GUI模版,你可以根据需要选择其它的。
2.3 点击“OK”我们正式进入GUIDE界面,呵呵,是不是感觉似曾相识3、添加你需要的控件到figure中在添加控件之前,您最好对您的GUI界面布局已经有一定的构思了,否则盲目性太大了不利于您的编程。
下面是我们构思的布局。
二、添加控件和设置属性在正式讲解之前,我们先讲解下GUI中的鼠标基本操作(a) 在左边的控件面板中鼠标左击选择您需要的控件,然后放开鼠标(b) 在右边的figure中按住左键,画出您的控件,于是空间就在figure上(c) 你可以用鼠标拖拽figure上所有控件,来改变他们的位置(d) 在控件上双击鼠标左键(右击是快捷菜单)可打开控件属性面板1、从上面的布局构思,我们知道本GUI需要以下控件:三个“编辑文本框”(Edit Text):三个“静态文本框”(Static Text):一个“确定按钮”(Pushbutton)按照上面介绍的鼠标操作方法,将这6个控件拖到右边的figure中,如下图所示2、接下来就是编辑这些控件的属性好,下面从Static Text开始吧,双击其中一个“静态文本块”,将跳出该控件的“属性查看器”(Property Inspector)GUI控件的几个常用属性说明如下:position:指示空间在figure中的位置font**:字体相关属性string:相当如VB中的caption,就是显示在控件上的文字tag:控件的唯一标识符,相当于ID,我们需要tag来指定某一个空间2.1 在这里我们修改它的“string”属性为“+”2.2 同理修改它的“fontsize”属性为20在编辑完这些属性后,直接点击右上角的“关闭”按钮,关闭属性查看器,此时属性会自动保存。
MATLAB实现GUI界面一、搭建最基本的GUI本节通过两个例子进行论述,分别介绍GUI基本操作,即数值运算、数据导入、图形绘制等功能的GUI实现。
A-加法器首先上效果图:输入两个数值,点击Add!,便可显示结果,下面开始逐步介绍。
•GUI新建常用的新建GUI方法有两个:1.mand Window输入guide—>Create New GUI;2.Home—>New—>Graphical User Interface;注意:勾选“Sace new figure as:”,可选择存储路径,并对文件命名。
这里我们选择默认的“Blank GUI(Default)”,点击“OK”,便可进入,本文主要用到以下几个选框:•GUI框架搭建本文为基础内容,框架内修改的主要是点击需要添加的选框至面板中,双击选框,特性中:其中String:显示的名称;Tag:标签,主要用于程序编写时,对变量进行定位;常用:position:指示空间在figure中的位置font**:字体相关属性string:相当如VB中的caption,就是显示在控件上的文字tag:控件的唯一标识符,相当于ID,我们需要tag来指定某一个空间因此,我们只需要设定参与操作的选框tag;对于不涉及操作、仅仅作为显示的选框,其tag我们可以默认。
分析加法器,我们总共需要的选框:其中,涉及操作的有:两个输入(两个编辑文本框)+ 一个执行加法运算的开关(一个确定按钮)+结果显示(一个静态文本框)。
设置完成的效果图:点击“保存”,此时便出现.m和.fig两个文件,加法器的GUI框架搭建完毕。
•GUI对应代码完善步骤一:设定tag、String等参数;首先是回调函数的定位(如果已经退出GUI编辑框,可Command Window输入guilde进入):选中并右键—>Viwe Callbacks—>Callback,即可打开对应的函数模块。
matlab gui教程MATLAB(Matrix Laboratory)是一种用于数值计算和科学工程的高级编程语言和环境。
MATLAB具有强大的数值计算能力和丰富的函数库,广泛应用于各个领域,包括工程、科学、经济、金融等。
MATLAB的GUI(Graphical User Interface)编程是一种通过可视化界面与用户进行交互的编程方式。
GUI程序的开发可以使用户更加方便地使用MATLAB的各种功能,并且可以增加程序的易用性和可读性。
在MATLAB中,GUI程序的开发是通过GUIDE(Graphical User Interface Development Environment)工具完成的。
GUIDE 是MATLAB自带的一种可视化设计工具,它可以帮助用户快速实现GUI的设计和布局,并且可以自动生成相应的代码。
通过GUIDE,用户可以将各种用户界面元素(如按钮、文本框、滑动条等)拖放到GUI窗口中,并进行相应的属性设置和回调函数的编写。
回调函数是指当用户进行操作时触发的响应函数,用于实现用户与程序的交互。
GUI程序的开发通常包括以下几个步骤:1. 创建GUI窗口:在MATLAB中,可以通过调用`figure`函数来创建GUI窗口,也可以直接使用GUIDE工具来设计和布局GUI窗口。
2. 添加用户界面元素:通过GUIDE工具或手动编写代码的方式,向GUI窗口添加各种用户界面元素,如按钮、文本框、滑动条等,并进行相应的属性设置。
3. 编写回调函数:为各个用户界面元素添加回调函数,用于实现用户与程序的交互。
可以通过GUIDE工具自动生成回调函数的代码,也可以手动编写回调函数。
4. 实现功能代码:根据用户界面元素的触发,编写相应的功能代码,实现程序的具体功能。
5. 调试和优化:测试GUI程序的各个功能,并进行必要的调试和优化,以确保程序的正常运行和良好的用户体验。
总的来说,MATLAB的GUI是一种非常强大和灵活的编程方式,可以方便实现用户与程序的交互、提高程序的易用性和可读性。
为了简单说明MatlabGUI的基本原理,下面做一个加法的界面打开matlab显示如下界面(部分):单击图标,弹出如下界面:按照默认,点ok按钮,弹出如下界面:这就是matlabGUI的编辑界面,下边分别选择相应的控件,用鼠标拖动到右边的区域,并且排列成下图所示的样子:第一个Edit Text按照如下设置,只需要修改String和Tag,需要说明的是,这里的Sting的值是文本框显示的字符串,也是我们在程序中需要读取的值,Tag的值代表该文本框的名字,在程序中也需要用到,其它项不变:第二个EditText按照如下图设置:第三个EditText按照如下图设置:第一个StaticText按照如下设置,这里只需要设置String,其它的不变:第一个StaticText按照如下设置Pushbutton按照如下设置设置完毕后的界面如下:设置完毕后保存,系统会自动生成一个同名的.m和.fig文件,比如add.m和add.fig,其中add是我保存的文件名,现在切换到上图的界面,在按钮上点右键,如下图所示,选择ViewCallbacks—>Callback这时会自动切换到该按钮的回调函数下面,如下图所示因为我们的程序是在点“确定”按钮之后执行,包括读取N1和N2的值,然后相加,最后把结果显示在第三个文本框中,所以这些程序代码要加在pushbutton_ok_Callback()函数下边,代码如下:N1=str2double(get(handles.N1,'string'));%读取N1的值,由于读的是String的值,%需要用str2double函数将字符串转化成数字型N2=str2double(get(handles.N2,'string'));N3=N1+N2;set(handles.Sum,'string',N3);%在第三个文本框显示结果保存后点击图标就可以运行了。
Matlab GUI 常用操作菜单1.编辑菜单打开GUIDE,选择工具栏上面的菜单编辑按钮2.添加菜单回调函数(callback)菜单编辑完成保存后,在fig对应的m文件中会自动生成菜单的回调函数声明例如菜单tag名为menuFilePrint,则对应的callback函数为:function menuFilePrint_Callback(hObject, eventdata, handles)可以在该函数内添加代码实现功能。
3.菜单项访问获取菜单句柄在matlab的函数中要对某个菜单进行访问,必须获得该菜单的句柄。
如果是在菜单的回调函数里面,hObject就是该菜单的句柄;如果是在其他的函数里面要获得某一菜单的句柄,比如选中工具栏上的ZoomIn按钮,按钮处于被按下状态,同时要设置对应菜单项view->Zoom-Zoom In 为选中状态,如下图:这里要在按钮“ZoomIn”的callback函数里面实现对菜单menuViewZoomIn的状态设置。
首先得获得菜单的句柄:% first we must get the handle of menuZoomInhFigChildren = allchild(gcf);% menuView handlehMenuView = findobj(hFigChildren,'Tag','menuView');hvc = allchild(hMenuView);% menuViewZoomhViewZoom = findobj(hvc,'Tag','menuViewZoom');hvzc = allchild(hViewZoom);%menuZoomIn handlehZoomIn = findobj(hvzc,'Tag', 'menuZoomIn');获取设置菜单状态得到菜单的句柄后就可以得到菜单当前的状态了:if strcmp(get(hZoomIn, 'Checked'),'on')set(hZoomIn, 'Checked', 'off');elseset(hZoomIn, 'Checked', 'on');end工具栏1.不显示工具栏1)GUIDE开发界面在对应的m文件中找到function Main_OpeningFcn(hObject, eventdata, handles, varargin)在该函数里面添加:set(hObject,'Toolbar','none');2)M文件开发hMainFigure = figure(... % The main GUI figure'MenuBar','none', ...'Toolbar','none', ...'HandleVisibility','callback', ...'Color', get(0,...'defaultuicontrolbackgroundcolor'));2.显示“Figure”工具栏set(hObject,'Toolbar','figure');3.添加自定义工具栏set(hObject,'Toolbar','none');hToolbar = uitoolbar(hObject);hNewPushtool = uipushtool(... % Open toolbar button'Parent',hToolbar,...'TooltipString','New File',...'CData',imread('New.bmp'));'HandleVis ibility','callback', ...'ClickedCallback', @hOpenMenuitemCallback);4.获取工具栏句柄% get toolbar handlehToolbar = findall(gcf,'Type','uitoolbar');if isempty(hToolbar), return, end5.获取figure工具栏按钮的tag值% get toolbar handlehToolbar = findall(gcf,'Type','uitoolbar');if isempty(hToolbar), return, end% get all childrenhChildren = allchild(hToolbar);if isempty(hChildren), return,endhTags = get(hChildren, ‘Tag’);hTags保存了工具栏所有按钮的tag值:6.获取设置figure工具栏按钮的callback函数%reset callback function for "Zoom in"hZoomIn = findobj(hChildren,'Tag','Exploration.ZoomIn');set(hZoomIn,'ClickedCallback',@tbZoomIn_Callback);function tbZoomIn_Callback(hObject, eventdata)% hObject handle to tbZoomIn (see GCBO)% eventdata reserved - to be defined in a future version of MATLA B 7.删除figure工具栏按钮% set figure toolbar firstset(hObject,'Toolbar','figure');% get toolbar handletbh = findall(hObject,'Type','uitoolbar');if isempty(tbh), return, end% toolbar buttons collectionhChildren = allchild(tbh);if isempty(hChildren), return, end% delete data cursor buttonhDeleted = findobj(hChildren,'Tag','Exploration.DataCursor');delete(hDeleted);8.设置figure工具栏按钮的状态% get toolbar handlehToolbar = findall(gcf,'Type','uitoolbar');if isempty(hToolbar), return, end% get all childrenhChildren = allchild(hToolbar);if isempty(hChildren), return,endhTags = get(hChildren, 'Tag');% find "Zoom In" buttonhb = findobj(hChildren,'Tag','Exploration.ZoomIn');if isempty(hb),return, end% set stateif strcmp(get(hObject, 'Checked'),'on')set(hObject, 'Checked', 'off');set(hb,'State', 'off');elseset(hObject, 'Checked', 'on');set(hb,'State', 'on');end。
matlab的gui的用法
1. 打开 MATLAB,然后选择“新建(New)”。
2. 在“新建”页面上,选择“GUI(图形用户界面)”选项进入GUI
创建向导。
3. 选择GUI的类型,包括标准(Standard)GUI、模板(Template)GUI、空白(Blank)GUI或从现有GUI中创建。
4. 在GUI编辑器中设计GUI,可以通过插入各种控件、编辑控件属性、调整布局等方式来实现。
5. 创建GUI回调函数来控制GUI中的操作并处理用户输入,可以手动
输入代码或使用自动生成的回调。
6. 运行GUI并进行测试,可以通过单击绿色“运行GUI”按钮或在命
令行窗口中键入GUI名称来运行。
7. 对GUI进行调整和修改,如果需要对GUI进行更改,则可以随时返
回到编辑器中进行修改并再次测试。
总的来说,MATLAB的GUI设计并不复杂,主要是通过GUI编辑器中的可视化设计和回调函数的编写实现。
需要学习一些基本控件的使
用和GUI布局方式的设计技巧。
本人初学GUI ,针对网上版本的混乱,学得一头雾水,特重新整理如下,供大家参考。
1.首先我们新建一个 GUI 文件:File/New/GUI 如下图所示;选择 Blank GUI(Default),点击 OK 。
2.进入GUI 开发环境以后添加 3个编辑文本框(Edit Text ),2个静态文本框(Static Text ), 和一个Push Button 按钮,布置如下图所示;⑷修改Pushbutton 按钮的属性,“ string 改为“ Add ” “ tag 改为“ add ”⑸另外2个Static 文本就是的“ string 修改为"+ ”"=”(6)点击“保存”,名字任意取,自动弹出 M 文件(我的是7.0版本,不知其他版本会不 会如此)。
(1) 第一个 “in putl ”(2) 第二个 “input2 ”(3)第三个“ Edit Text! ”的用来存储第一个加数,我们将“Edit Tex2”的用来存储第二个加数,我们将"Edit Tex3"的 “string 改为 “Q ” “tag 为““ string 改为 “ 0,” “ tag 改为 “ string 改为 “ 0” “ tag 改为 an swer3•我们先为第一个Edit Text文本框添加代码,即读取第一个加数;点击上图所示红色方框,选择input1_Callback,光标便立刻移到下面这段代码(程序自动生成)的位置。
function in put1_Callback(hObject, even tdata, han dies)% hObject han dle to in putl (see GCBO)% eve ntdata reserved - to be defi ned in a future version of MATLAB% han dles structure with han dles and user data (see GUIDATA)% Hints: get(hObject, ' String ' ) returns cpnttlnasoext% str2double(get(hObject, ' String ' )) returnscontents of editl as a double然后在上面这段代码的下面插入如下代码:%以字符串的形式来存储数据文本框1的内容•如果字符串不是数字,则现实空白内容input=str2num(get(hObject,'String')); %检查输入是否为空.如果为空,则默认显示为0 if(isempty(i nput))set(hObject,'Stri ng','0')endguidata(hObject,handles);%保存handles结构体,只要在handles结构体有改变时,才需要保存%guidata(hObject, handles);%这里由于handles没有改变,故这里其实没有必要,但是为了避免潜在的不必要麻烦,建议在所有Callback都添加该命令。
MATALB的标准图形用户界面1. 消息对话框msgbox函数。
它不接受用户的任何输入,在用户单击OK按钮后,对话框自动关闭,然后返回程序中继续执行。
>> msgbox('欢迎使用MATLAB') % 建立一个没有标题的消息对话框>> msgbox('欢迎使用MATLAB','MATALB','warn') %% 建立一个有标题的消息对话框2. 错误对话框errordlg函数。
>> errordlg %建立一个默认参数的错误对话框>> errordlg('这是一个错误对话框','MATLAB error') %建立一个名为MATLAB error的错误对话框3. 警告对话框warndlg函数。
>> warndlg %建立一个默认参数的警告对话框>> errordlg('这是一个警告对话框','MATLAB warning')4. 帮助对话框helpdlg函数。
>> helpdlg('你需要帮助吗?','MATLAB Help')5. 进度条设置对话框waitbar函数。
作用是反映程序运行的完成情况。
h=waitbar(0,'请稍等......')for i=1:10000waitbar(i/10000)end6.输入对话框inputdlg函数。
prompt={'输入梯形的上底:','输入梯形的下底','输入梯形的高'};%设置提示字符串name='Enter trapeaia Data';%设置标题numlines=1;%指定输入数据的行数defAns={'20','50','40'};%设定默认值Resize='on';%设定对话框尺寸可调节answer=inputdlg(prompt,name,numlines,defAns,'on')%创建输入对话框7. 列表对话框listdlg函数。
11 图形用户界面(GUI )制作用户界面(或接口)是指:人与机器(或程序)之间交互作用的工具和方法。
如键盘、鼠标、跟踪球、话筒都可成为与计算机交换信息的接口。
图形用户界面(Graphical User Interfaces ,GUI )则是由窗口、光标、按键、菜单、文字说明等对象(Objects )构成的一个用户界面。
用户通过一定的方法(如鼠标或键盘)选择、激活这些图形对象,使计算机产生某种动作或变化,比如实现计算、绘图等。
假如读者所从事的数据分析、解方程、计算结果可视工作比较单一,那么一般不会考虑GUI 的制作。
但是如果读者想向别人提供应用程序,想进行某种技术、方法的演示,想制作一个供反复使用且操作简单的专用工具,那么图形用户界面也许是最好的选择之一。
MATLAB 为表现其基本功能而设计的演示程序demo 是使用图形界面的最好范例。
MATLAB 的用户,在指令窗中运行demo 打开那图形界面后,只要用鼠标进行选择和点击,就可浏览那丰富多彩的内容。
即便比较熟悉MATLAB 的读者,在他初次编写GUI 程序时,也会感到棘手。
为使读者获得制作自己GUI 的体验,本章“入门”节提供了一个简单的示例。
读者只要输入所提供的程序,就可引出相应的界面。
本章第2节叙述图形用户界面的设计原则和一般制作步骤。
第3、4节分别介绍用户菜单、用户控件的制作。
出于“由浅入深”的考虑,前4节制作GUI 是通过M 脚本文件实现的。
利用M 函数文件制作GUI ,需要解决数据传递问题,为此专设第5节给予阐述和示例。
MATLAB 5.x 版为方便用户制作图形界面,提供了一个交互式的设计工具guide 。
关于该工具的使用方法,被放在第6节中,以一个综合例题为设计目标逐步展开。
在此提醒读者,假如要比较准确的理解本章程序和掌握本章内容,请先阅读第10章关于图柄的内容。
11.1 入门【*例11.1-1】对于传递函数为1212++=s s G ζ的归一化二阶系统,制作一个能绘制该系统单位阶跃响应的图形用户界面。
本例演示:(A )图形界面的大致生成过程;(B )静态文本和编辑框的生成;(C )坐标方格控制键的形成;(D )如何使用该界面。
(1)产生图形窗和轴位框: clf resetH=axes('unit','normalized','position',[0,0,1,1],'visible','off'); set(gcf,'currentaxes',H);str='\fontname{隶书}归一化二阶系统的阶跃响应曲线'; text(0.12,0.93,str,'fontsize',13); h_fig=get(H,'parent');set(h_fig,'unit','normalized','position',[0.1,0.2,0.7,0.4]); h_axes=axes('parent',h_fig,...'unit','normalized','position',[0.1,0.15,0.55,0.7],... 'xlim',[0 15],'ylim',[0 1.8],'fontsize',8);图 11.1-1 产生坐标轴(2)在坐标框右侧生成作解释用的“静态文本”和可接受输入的“编辑框”:h_text=uicontrol(h_fig,'style','text',...'unit','normalized','position',[0.67,0.73,0.25,0.14],...'horizontal','left','string',{'输入阻尼比系数','zeta ='});h_edit=uicontrol(h_fig,'style','edit',...'unit','normalized','position',[0.67,0.59,0.25,0.14],...'horizontal','left',...'callback',[...'z=str2num(get(gcbo,''string''));',...'t=0:0.1:15;',...'for k=1:length(z);',...'s2=tf(1,[1 2*z(k) 1]); ',...'y(:,k)=step(s2,t);',...'plot(t,y(:,k));',...'if (length(z)>1) ,hold on,end,',...'end;',...'hold off,']);图 11.1-2 在图形界面中添加编辑框和文本框(3)形成坐标方格控制按键:h_push1=uicontrol(h_fig,'style','push',...'unit','normalized','position',[0.67,0.37,0.12,0.15],...'string','grid on','callback','grid on');h_push2=uicontrol(h_fig,'style','push',...'unit','normalized','position',[0.67,0.15,0.12,0.15],...'string','grid off','callback','grid off');图 11.1-3 添加了两个按键的图形界面(4)输入阻尼比系数 ,可得单位阶跃响应曲线:图 11.1-4 输入标量阻尼比所得到的响应曲线图 11.1-5 输入阻尼比数组所得到的一组响应曲线11.2图形用户界面的设计原则和一般步骤11.2.1设计原则11.2.2一般制作步骤11.3界面菜单(uimenu)11.3.1图形窗的标准菜单【例11.3.1-1】本例说明:如何隐藏和恢复标准菜单的显示。
(1)获得缺省设置的标准菜单figure(2)隐去标准菜单的两种方法set(H_fig , 'MenuBar','none');set(gcf,'menubar',menubar);(3)恢复图形窗上标准菜单set(gcf,'menubar','figure');图 11.3.1-1 含有菜单条的图形窗图 11.3.1-2 移去菜单条的图形窗11.3.2自制的用户菜单【*例11.3.2-1】本例演示:如何自制一个带下拉菜单表的用户菜单(如图11.3.2-1所示)。
该菜单能使图形窗背景颜色设置为兰色或红色。
figure %创建一个图形窗h_menu=uimenu(gcf,'label','Color'); %制作用户顶层菜单项Color <2>h_submenu1=uimenu(h_menu,'label','Blue',...%制作下拉菜单项Blue <3> 'callback','set(gcf,''Color'',''blue'')'); %<4>h_submenu2=uimenu(h_menu,'label','Red',...%制作下拉菜单Red <5> 'callback','set(gcf,''Color'',''red'')'); %<6>图 11.3.2-1 创建用户菜单示例11.3.3用户菜单的属性11.3.3.1回调属性和菜单名【*例11.3.3.1-1】本例的目标是:在图形窗上自制一个名为【Test】的“顶层菜单项”;当用鼠标点动该菜单项时,将产生一个带分格的封闭坐标轴。
通过本例说明:(A)回调属性的运作机理;(B)用户顶层菜单项的制作(C)uimenu属性的设置方法;(D)复杂字符串的构成方法和注意事项。
(1)在MATLAB指令窗中运行以下程序可产生带分格的封闭坐标轴(见图11.3.3.1-1)grid on,set(gca,'box','on')图11.3.3.1-1 带分格的封闭坐标轴(2)在MATLAB指令窗中用以下eval指令可产生与图11.3.3.1-1相同的界面eval('grid on,set(gca,''box'',''on'')')(3)产生图11.3.3.1-2界面的uimenu的书写格式一:直接连续表示法uimenu('Label','Test','Callback','grid on,set(gca,''box'',''on''),')图11.3.3.1-2 通过顶层菜单Test形成的带分格的封闭坐标轴(4)产生图11.3.3.1-2界面的uimenu的书写格式二:方括号续行号表示法uimenu('Label','Test', ...'Callback',['grid on,' , ...'set(gca,''box'',''on'');'])(5)产生图11.3.3.1-2界面的uimenu的书写格式三:串变量法Lpv='Test';Cpv=['grid on,','set(gca,''box'',''on''),'];uimenu('Label', Lpv, 'Callback' , Cpv)(6)产生图11.3.3.1-2界面的uimenu的书写格式四:构架表示法bel='Test';PS.Callback=['grid on;','set(gca,''box'',''on'');'];uimenu(PS)11.3.3.2设置简捷键或快捷键【*例11.3.3.2-1】本例目标:使图11.3.2-1所示菜单成为图11.3.3.2-1那样,Color菜单项及其下拉的Blue菜单各带一个简捷键,而另一项下拉菜单Red带一个快捷键。