(完整版)MatlabGUIDE使用说明(MatlabGUI界面)
- 格式:doc
- 大小:29.80 KB
- 文档页数:8
今天由于要帮一朋友用matlab处理一幅图片,处理图片的要求其实很简单,就是把图片加载进matlab中,然后显示出想要的某一列的趋势图来。
如果用代码写的话,程序如下:x=imread(‘文件路径\*.jpg’);figure(1);plot(x(:,100)); %假如要显示的是图像的第100列的趋势图显示效果如下图所示:虽然用M文件写两句很简单,不过带着感情,追求更好是我们永恒的动力,首先用M文件时候人机界面不友好,的看很多的代码,尤其对不太熟悉M编程的的人而言即使很简单也看着比较郁闷,因此我们接下来用matlab中的GUI来完成这个简单的例子,当然编程起来比这个复杂多,但是对使用者而言确很简单清楚。
这个就如同VC中的MFC和WINDOWSFORMS一样。
做成的都是人机交互界面。
不废话了,看例子。
首先打开MATLAB,要新建一个MATLAB GUI 程序有三种方法,这里我直接在命令窗口里输入guide,新建一个空的GUI程序,选择如下图:新建好的GUI编程界面如下图,上面无非就是菜单,工具,还有编程用到的控件,还有编程的用户窗口。
这个和LABVIEW有点像。
不过LABVIEW的前面板都是用控件拖出来的,后面板也是拖控件画出来的。
而GUI的显示界面是拖控件画出来的,其中一些属性参数要设置下,而后面的执行这些控件的都是写的M函数,即后面板都是要写代码的,这个比LABVIEW单纯的画程序要难,当然灵活性也大,不过个人感觉没一个简单的,都难呀。
至于上面控件的意思,怎么拖请自己看吧,若学过MFC或者WINDOWSFORMS的人就会很容易理解的,这之间是太像了,呵呵。
我们的目的是显示图片,并且显示需要的某一列的趋势图。
为了使人机交互更好点,我们可以使加载图片时和我们选择打开文件夹那样完成,即自己选择路径,而不用每次在M文件里改路径。
还有我们要求在加载图片完成时立马显示出这幅图片的大小信息,即多少行,多少列。
MATLAB实用教程GUIMATLAB是一种功能强大的科学计算软件,在各个领域中被广泛应用。
除了提供基础的数值计算和数据可视化功能之外,MATLAB还提供了可视化编程界面(GUI)工具箱,方便用户通过交互式界面进行操作和数据分析。
本篇文章将介绍一些MATLAB实用教程GUI的相关内容。
首先,我们需要了解什么是GUI。
GUI是Graphical User Interface的缩写,即图形用户界面。
通过GUI,用户可以通过鼠标、键盘等输入设备与计算机进行交互,而不需要通过命令行输入指令。
MATLAB提供了一系列功能强大的GUI工具箱,用于创建各种形式的图形用户界面。
创建GUI的第一步是打开MATLAB的Guide工具箱。
Guide是一个可视化开发环境,提供了创建GUI界面和添加交互元素的功能。
打开Guide 后,用户可以通过拖放控件、设置属性等方式创建界面,并将其与MATLAB代码关联起来。
在Guide中,用户可以使用不同的布局管理器(layout manager)来组织和调整界面中的控件位置和大小。
常用的布局管理器包括网格布局(grid layout)、组框布局(box layout)等。
用户还可以为每个控件设置属性,如字体、颜色、大小等。
对于每个控件,用户可以为其添加特定的回调函数。
回调函数是一个用户定义的函数,在特定事件(如按钮点击、输入框输入等)发生时被调用。
通过回调函数,用户可以定义GUI与MATLAB代码之间的交互逻辑。
在编写回调函数时,用户可以使用MATLAB的各种功能。
例如,用户可以使用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:菜单编辑器。
如果没有图形用户界面(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 常用操作菜单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'));'HandleVisibility','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 MATLAB 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 GUIDE使用总结--Matlab GUI界面(zz)去年做了一些关于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中的guide编程
在MATLAB中,GUIDE是一种图形用户界面开发环境,可以用来快速创建GUI(图形用户界面)。
GUIDE提供了一个图形化操作界面,可以让我们更方便地创建和修改GUI组件,同时也支持在界面中添加自定义代码。
以下是MATLAB中使用GUIDE编程时需要注意的几点:
1.打开GUIDE:可以通过命令窗口输入“guide”命令来打开GUIDE。
2.添加组件:在GUIDE的图形化界面中,可以通过点击左边的组件面板,然后将组件拖拽到图形化界面中来添加组件。
3.设置属性:可以通过GUIDE的属性编辑器来设置组件的各种属性,例如位置、大小、颜色等。
4.添加回调函数:可以通过GUIDE的回调编辑器来为组件添加回调函数,当组件被触发时,回调函数将被自动调用。
5.生成代码:可以通过GUIDE的生成代码功能,将自己在GUIDE中创建的GUI界面的代码自动生成为.m文件,可以方便地在其他程序中调用。
6.调试程序:在GUIDE中可以使用调试功能来测试GUI界面及其组件的效果。
可以通过在回调函数中添加断点并点击运行按钮进行调试。
综上所述,GUIDE是MATLAB中非常强大且易于使用的图形用户界面开发工具,可以让我们方便快捷地创建自己的GUI 界面,并且可以添加自定义的代码功能。
这是我很久之前写串口通信程序时编的,网上这写资料很少,我是看着MATLAB的帮助文档自己一点点写的,虽然最后放弃了matlab上位机程序的方案,但是还是整理了一下之前的一些收获,写下以下的说明。
编译环境:MATLAB2009a1打开GUIDE工具,点击红圈中的GUIDE图标。
2直接利用默认设置点OK即可3在控件篮拖拽控件到如下图的形式4进行控件设置,右击控件点“Property Inspector”,如图一般仅设置Tag选项和String选项。
其中String选项在按钮控件中就是GUI显示时的字符。
Tag 属性较为重要,在GUI编程时控件的索引主要利用Tag选项的属性并且在GUI生成回调函数时候也是由Tag属性的值命名的。
这里将“打开串口”按钮控件的String设置为“打开串口”,tag设置为pb_OpenSerialPort。
具体控件的设置和关于GUI的编程还是看下帮助(截图部分)或找本这方面的书看一下。
这里对我即将用的功能简述一下,MALTAB的GUI主要由两个文件,当设置好GUIDE时点击保存,这时将在当前路径自动产生两个名字相同的文件,但扩展标识符不同,一个为.fig文件,一个为.m 文件,.fig主要是GUI图形文件,和GUIDE设计的图像相同,.m文件为程序文件,所有事件响应和计算功能都在这里实现。
MATLAB的按钮以及各种控件事件响应是依靠一种叫做回调函数(Callback Function)来实现的(我理解为和Visual C++中的消息映射,C#中的异步委托事件响应一种原理),自动生成的M文件中已经自动做好回调函数的名称和参数了,我们需要做的就是在其中添加你要进行的处理。
例如:我们要在鼠标单击按钮“打开串口”时进行一系列的串口初始化动作,这时右键单击“打开串口按钮”如图则MALAB会自动转向相应的M文件的回调函数的位置。
如图这里,因为该按钮的Tag为"pb_OpenSerialPort",则GUIDE自动生成的回调函数名即为pb_OpenSerialPort_Callback,函数有三个参数,hObject是当前控件对象,即打开串口按钮对象(面向对象技术中的概念),索引或设置当前对象(打开串口按钮对象)时只需要引用hObject就可以了。
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函数。
matlab gui面板的用法MATLAB GUI面板(Graphical User Interface)是一种基于MATLAB的界面开发工具,可以帮助用户以可视化的方式操作MATLAB程序。
GUI面板提供了一种直观、交互式的方式来与MATLAB程序进行互动,使得用户无需编写代码即可控制和操作程序。
本文将逐步介绍MATLAB GUI面板的用法,包括面板的创建、布局设计、图形元素的添加、回调函数的编写等内容。
第一步:创建GUI面板首先,打开MATLAB,并点击“APP Designer”按钮,进入GUI设计界面。
在界面左侧的“Component Library”面板中,选择“Panel”组件,拖动到界面中央的设计区域,即可创建一个GUI面板。
第二步:布局设计在GUI面板中,可以使用不同的布局方式来排列和组织图形元素。
在“Layout”面板中,可以选择水平布局、垂直布局或网格布局,并通过调整行列数或拖拽边缘来自定义布局。
此外,还可以使用“Tab Group”组件来创建选项卡式布局,方便用户切换不同功能模块。
第三步:添加图形元素在GUI面板中,可以通过“Component Library”面板中的组件来添加各种图形元素,如按钮、文本框、复选框、滑块等。
选择所需的组件,并将其拖动到GUI面板中,然后通过调整大小和位置来进行界面布局和排列。
第四步:设置图形元素属性每个图形元素都有一组属性,可以通过在“Properties”面板中选择和修改来定制图形元素的外观和行为。
例如,可以修改按钮的文本和颜色、文本框的默认值和输入限制、滑块的范围和步长等。
通过设置这些属性,可以使得GUI界面更符合用户的需求。
第五步:编写回调函数回调函数是MATLAB GUI面板中用于响应用户操作的函数。
当用户与图形元素进行交互时,比如点击按钮或调整滑块,相应的回调函数将被触发执行。
为了编写回调函数,可以通过点击图形元素,在“Properties”面板中找到“Callback”属性,并使用编辑器来编写相应的MATLAB代码。
MATLAB GUI 编程--GUIDE (2)一、MATLAB GUIDE基本操作 (2)1.运行GUIDE (2)2.创建新的GUI (2)3.打开已保存的文件 (3)4.GUI编辑界面组成 (4)5.属性查看器 (5)6.GUI的M文件 (6)7.实例 (7)二、MATLAB GUI基础知识 (10)1.控件种类 (10)2.控件的四个重要属性 (11)3.控件的其他常用属性 (11)4.回调函数 (12)5.Callback程序 (12)三、MATLAB GUI Callback程序基本操作 (12)1.图形对象 (12)2.MATLAB图形对象句柄 (13)3.图形对象属性 (13)4.Callback程序基本操作 (14)四、MATLAB GUIDE 数据传递机制 (14)1.GUIDE的函数 (14)2.GUIDE的参数 (15)3.两个重要的结构数组 (15)4. MATLAB GUIDE中数据 (15)5. MATLAB GUIDE数据访问机制 (15)6.GUIDE 数据传递机制 (16)7.实例一:编辑框数据获得在按钮控件中调用 (16)8.实例二:弹出框选项获得与程序控制 (17)五、部分控件说明 (18)MATLAB GUI 编程--GUIDE一、MATLAB GUIDE基本操作GUIDE是MATLAB图形用户接口开发环境(Graphical User Interface Development Environment)的简称,它提供了一系列工具用于建立GUI对象。
这些工具极大简化了设计和创建GUI的过程。
使用GUI可以完成两项工作:(1)GUI图形界面布局;(2)GUI编程。
1.运行GUIDE有三种方法可以启动GUIDE:(1)在命令行输入:>> guide(2)单击MATLAB主窗口的(GUIDE)按钮;(3)单击MATLAB主窗口【Start】按钮,出现弹出菜单,在主程序组【MATLAB】中选择“GUIDE(GUI Builder)”选择项。
去年做了一些关于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:菜单编辑器。
二:使用控件新建一个布局(窗口),可以在新窗口中添加如下控件1.静态文本(Static Text)2.编辑框(Edit Text)控件3.列表框(Listbox)控件4.滚动条(Slider)控件5.按钮(Push Button)控件6.开关按钮(Toggle Button)控件7.单选按钮(Radio Button)控件8.按钮组(Button Group)控件9.检查框(Check Box)控件10.列表框(Listbox)控件11.弹出式菜单(Popup Menu)控件12.坐标轴(Axes)控件13.面板(Panel)控件每一个控件都有自己的属性常规属性有:一、控件风格和外观(1)BackgroundColor:设置控件背景颜色,使用[R G B]或颜色定义。
(2)CData:在控件上显示的真彩色图像,使用矩阵表示。
(3)ForegroundColor:文本颜色。
(4)String属性:控件上的文本,以及列表框和弹出菜单的选项。
(5)Visible:控件是否可见。
二、对象的常规信息(1)Enable属性:表示此控件的使能状态,设置为on”,表示可选,为“off”时则表示不可选。
(2)Style:控件对象类型。
(3)Tag:控件表示(用户定义)。
(4)TooltipString属性:提示信息显示。
当鼠标指针位于此控件上时,显示提示信息。
(5)UserData:用户指定数据。
(6)Position:控件对象的尺寸和位置。
(7)Units:设置控件的位置及大小的单位(8)有关字体的属性,如FontAngle,FontName等。
三、控件回调函数的执行(1)BusyAction:处理回调函数的中断。
有两种选项:即Cancel:取消中断事件,queue:排队(默认设置)。
(2)ButtonDownFcn属性:按钮按下时的处理函数。
(3)CallBack属性:是连接程序界面整个程序系统的实质性功能的纽带。
该属性值应该为一个可以直接求值的字符串,在该对象被选中和改变时,系统将自动地对字符串进行求值。
(4)CreateFcn:在对象产生过程中执行的回调函数。
(5)DeleteFcn:删除对象过程中执行的回调函数。
(6)Interruptible属性:指定当前的回调函数在执行时是否允许中断,去执行其他的函数。
四、控件当前状态信息(1)ListboxTop:在列表框中显示的最顶层的字符串的索引。
(2)Max:最大值。
(3)Min:最小值。
(4)Value:控件的当前值。
你可以使用属性编辑器来设置属性三:写回调函数CallBack每个控件都有几种回调函数,右键选中的控件一般会有如下菜单:然后就可以跳转到相应的Editor中编辑代码,GUIDE会自动生成相应的函数体,函数名,名称一般是控件Tag+ Call类型名参数有三个( hObject, eventdata, handles)其中hObject 为发生事件的源控件,eventdata为事件数据结构,handles为传入的对象句柄CreateFcn 是在控件对象创建的时候发生(一般为初始化样式,颜色,初始值等)DeleteFcn 实在空间对象被清除的时候发生ButtonDownFcn和KeyPressFcn分别为鼠标点击和按键事件CallbackCallBack为一般回调函数,因不同的控件而已异。
例如按钮被按下时发生,下拉框改变值时发生,sliderbar 拖动时发生等等。
四:句柄图形之间的层次关系可以创建图形句柄的常见函数1.figure函数:创建一个新的图形对象。
2.newplot函数:做好开始画新图形对象的准备。
3.axes函数:创建坐标轴图形对象。
4.line函数:画线。
5.patch函数:填充多边形。
6.surface函数:绘制三维曲面。
7.image函数:显示图片对象。
8.uicontrol函数:生成用户控制图形对象。
9.uimenu函数:生成图形窗口的菜单中层次菜单与下一级子菜单。
几个实用的小函数:uigetfile 选择文件对话框uiputfile 保存文件对话框uisetcolor 设置颜色对话框fontsetcolor 设置字体对话框msgbox 消息框warndlg 警告框helpdlg 消息框不过如果要让父窗口不可用,你需要使用uiwait来定焦于用户对话框。
例如:h=helpdlg('Please press me!','Attention');uiwait(h);四:获取与设置对象属性常用函数:gcf函数:获得当前图形窗口的句柄gca函数:获得当前坐标轴的句柄gco函数:获得当前对象的句柄gcbo函数:获得当前正在执行调用的对象的句柄gcbf函数:获取包括正在执行调用的对象的图形句柄delete函数:删除句柄所对应的图形对象findobj函数:查找具有某种属性的图形对象设置方法:(1)get函数返回某些对象属性的当前值。
例如:p=get(obj,'Position');(2)函数set改变句柄图形对象属性,例如:set(obj,'Position',vect);五:函数调用在一个m文件中,可以定义多个函数,但是文件名一定要与第一个函数(主函数)一致,该文件中其他函数则为本文件的私有函数,外部不可访问(可以通过参数调用的方法访问,下面会描述)。
例如在一个程序中,创建一个fig后,会生成这样一个m文件:function varargout =febirdfun(varargin)gui_Singleton = 1;gui_State = struct('gui_Name', mfilename, ...'gui_Singleton', gui_Singleton, ...'gui_OpeningFcn', @febirdfun_OpeningFcn, ...'gui_OutputFcn', @febirdfun_OutputFcn, ...'gui_LayoutFcn', [], ...'gui_Callback', []);if nargin && ischar(varargin{1})gui_State.gui_Callback = str2func(varargin{1});endif nargout[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});elsegui_mainfcn(gui_State, varargin{:});end解析一下这个主函数:首先gui_State是一个结构,指定了figure打开和输出函数,开始gui_CallBack为空,如果输入参数个数不为0,接下来将输入第一个参数传递给gui_State.callback。
接下来用交给gui_mainfcn函数处理,gui_mainfcn 根据gui_State和传入参数来确定是执子函数,还是打开fig 文件和运行OpeningFcn和OutputFcn。
如过gui_Callback为空,那么就运行打开主窗口fig文件,否则,调用子函数这个函数的作用有:1.当输入不带参数的时候,能够打开fig文件,并且初始化控件2.当指定需要调用的函数名时,可以作为其他控件callback使用(实则调用同文件中的子函数) 例如,在某一个控件的callback 里面这样写:(febrdfun为主函数)febirdfun("@push_button_Callback",gcbf,[])这样的调用就可以调用文件里面的子函数。