MATLAB 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=(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=(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

MATLAB实用教程GUI
MATLAB是一种非常强大的数值计算软件,广泛应用于科学计算、工程设计和数据分析等领域。

其中的GUI(Graphical User Interface,图形用户界面)功能可以帮助用户设计出直观、交互性强的界面,提高使用效率和易用性。

本篇教程将介绍如何利用MATLAB的GUI功能创建一个实用的界面。

首先,打开MATLAB软件,并在"Home"选项卡中选择"New Script"创建一个新的脚本。

在脚本中,我们将使用MATLAB的GUI工具箱中的"App Designer"来创建界面。

除了按钮的点击事件外,还可以处理其他各种事件。

例如,通过为文本框添加"ValueChangedFcn"回调函数,可以在文本框内容发生更改时执行相应的操作。

在界面设计完成后,可以通过点击"Run"按钮来运行应用程序,并与用户进行交互。

可以输入文本、选择菜单项、点击按钮等等,然后根据用户的输入做出相应的反应。

通过与用户的交互,可以进行各种有用的计算和处理。

值得一提的是,MATLAB的GUI功能还支持将用户界面保存为独立的应用程序,并与其他MATLAB代码集成。

这意味着界面所包含的各种计算和分析能力可以通过编写MATLAB函数来实现,然后在界面的回调函数中调用这些函数。

这为用户提供了更大的自由度和灵活性,以满足不同需求的应用场景。

经典GUI基础入门:MATLAB中GUI用户图形界面学习

经典GUI基础入门:MATLAB中GUI用户图形界面学习

GUI指导教程系列(1):GUI入门基本操作为什么在MATLAB中要使用GUI呢?其实GUI就是Matlab中的Visual Basic,是面向对象的编程,可以使Matlab程序的终端用户,即使不懂的Matlab也可以轻易操作该程序!如果没有图形用户界面(GUI)我们只能从命令行(Command Window)中调用相关程序,这相对比较繁琐,并且不是所有用户都是这个能力。

就好比计算机的DOS 系统,在有windows的情况下,您会选择DOS吗?当然我们也不排除骨灰级的人物!在本节教程我们主要针对没有GUI创建和使用经历的网友,但是必要的MATLAB 基础知识是需要的。

在教程中我们将创建一个简单的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在编辑完这些属性后,直接点击右上角的“关闭”按钮,关闭属性查看器,此时属性会自动保存。

经典GUI基础入门:MATLAB中GUI用户图形界面学习

经典GUI基础入门:MATLAB中GUI用户图形界面学习

如果没有图形用户界面(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在编辑完这些属性后,直接点击右上角的“关闭”按钮,关闭属性查看器,此时属性会自动保存。

matlabGUI学习笔记

matlabGUI学习笔记

Matlab GUI学习笔记任务一:创建一个简单的GUINew--->GUI--->名称及保存地址拖动要添加的组件至界面,双击界面的任意地方修改界面的颜色等属性(property inspector)任务二:按钮的使用,图片读取,高分辨率1.鼠标拖动改变按钮位置及大小2.右击按钮---》property inspector可以更改按钮上的文字特征及按钮底色等3.右击按钮---》viewcallbacks--->callback--->编写函数建立按钮与实际操作之间的关系例如:建立读取文图片按钮[filename,pathname]=...uigetfile({‘*.jpg’;’*.bnp’;’*.gif’},’选择图片’); str=[pathname filename];imread(str);%使用第一个axes显示图片axes=(handles.axes1);imshow(str);任务三:radiobutton(单选按钮),switch语句,图像边缘在界面添加按钮群button group,然后将radiobutton拖至其中在buttongroup中右击---》viewcallbacks--->selectionchangeFcn 然后在此函数下键入%声明全局变量imglobal im%拿到用户选择按钮的名称,注意Object首字母大写str=get(hObject,’string’);axes(handles.axes1);switch strcase ‘原图’imshow(im);case ‘sobel’bw=edge(rgb2gray(im),’sobel’;%以sobel方式检测边缘imshow(bw);case ‘prewitt’bw=edge(rgb2gray(im),’prewitt’);imshow(bw);case ‘canny’bw=edge(rgb2gray(im),’canny’);imshow(bw);End任务四:创建学生成绩查询系统的界面新建一个GUI,将listbox(列表框)拖至界面,修改属性值至需要的值;将editor text(用于显示动态的文本)拖至界面,修改相应属性至需要的值;将static text(用于显示不变的文本)拖至界面,修改相应属性至需要的值。

Matlab GUIDE使用总结--Matlab GUI界面

Matlab GUIDE使用总结--Matlab GUI界面

2. 使用 GUIDE 快速的生成GUI界面
显然第二种可视化编辑方法算更适合写大型程序。
GUI
1. .m
例如
h_main=figure(‘name’,‘a demo of gui design’,‘menubar’,‘none’,…
该为一个可以直接求值的字符串,在该对象被选中和改变时,系统将自动地对字符串进行求
值。
(4)CreateFcn:在对象产生过程中执行的回调函数。
(5)DeleteFcn:删除对象过程中执行的回调函数。
(6)Interruptible属性:指定当前的回调函数在执行时是否允许中断,去执行其他的
(1)get函数返回某些对象属性的当前值。例如:
p=get(obj,'Position');
(2)函数set改变句柄图形对象属性,例如:
set(obj,'Position',vect);
在一个m文件中,可以定义多个函数,但是文件名一定要与第一个函数(主函数)一致,
你可以使用属性编辑器来设置属性
CallBack
每个控件都有几种回调函数,右键选中的控件一般会有如下菜单:
然后就可以跳转到相应的 Editor中编辑代码,GUIDE会自动生成 相应的函数体,函数名,
名称一般是 控件 Tag+ Call类型名 参数有三个 ( hObject, eventdata, handles)
(1)BusyAction:处理回调函数的中断。有两种选项:即Cancel:取消中断事件,queue:
排队(默认设置)。 (2)ButtonDownFcn属性:按钮按下时的处理函数。
(3)CallBack属性:是连接程序界面整个程序系统的实质性功能的纽带。该属性值应

【资源】MatlabGUI(图形用户界面)的心得,附编程中文参考手册

【资源】MatlabGUI(图形用户界面)的心得,附编程中文参考手册

【资源】MatlabGUI(图形用户界面)的心得,附编程中文参考手册Matlab GUI编程中文参考手册先给大家介绍几句:一、GUI是什么。

Graphic User Interface, (图形用户界面) :其实GUI其实只是一个图形界面,能比较形象的,生动的把模拟、运算结果表现出来。

它只是一个包装外壳。

您开发的程序,最好用这个包装起来,这样别人用的时候会方便很多很多. 具体的算法,运算,分析是相对独立与GUI存在的。

换句话说,GUI可以只有外壳,而没有内容;或者你预先做好的算法都可以套进一个做好的GUI里去。

(当然,GUI也是由m文件构成的。

)但另一个方面,GUI是用来人机交流的界面。

所以,用户具体的行为,比如运行某一功能,暂停,重置,弹菜单,切换机面等等,在GUI中要精心设计。

逻辑要精密,考虑要全面。

二、开始设计GUI。

命令guide可以运行matlab的界面设计工具,这是一个所见即所得的工具(根据个人体会,位置稍有偏移,但制是非常小的范围内)。

操作简单,拖拖放放,不用多言。

存盘运行时,guide可以自动为你创建fig文件(可选)和主函数。

值得一提的是物件布局工具(Align object),可以精确排列多个物件,包括对齐,间距等等。

各种object包括menu,line等等一共有十几种。

具体的细节可以参考matlab帮助,各自有自己的特性和用途。

其中最重要的是Callback 性质。

用button来举例,Callback就是按下按钮后,将会执行的功能。

在guide中双击某个按钮,在弹出的属性设置窗口中就能找到Callback项目。

你可以使用guide自动创建的函数。

也可自己写一个m文件或者函数文件。

把名称添到Callback即可。

其它物件都类似。

这一属性的设置,决定了大多数GUI的控制和行为。

Tag属性可以用来区别各个控件。

另外,enable,visiable,Position也是经常使用的属性。

Matlab的GUI编程帮助文件提纲

Matlab的GUI编程帮助文件提纲

Matlab的GUI编程帮助文件提纲所有资料都取自于MATLAB帮助文件,详情请见帮助“MATLAB \Creating Graphical User Interfaces”。

1、Getting Started with GUIDE2、Example: Creating a GUI2.1Designing the GUI2.2Laying Out the GUI注意:打开已存在的GUI文件进行编辑修改时,请在新建“GUI”时选择“Open Existing GUI”。

2.3Programming the GUISharing Data Between Callbacks(共享数据)2.4Saving and Running the GUI3、MATLAB GUIs3.1 What Is a GUI?3.2 Creating GUIs with GUIDE3.3 Using GUIDE Templates3.4 Example: Using the Modal Dialog to Confirm an Operation3.5 Example: Displaying an Image File3.6 Selecting GUI Options3.7 User Interface Controls各控件使用方法。

GUIs with Multiple Axes:axes(handles.axes1)3.8 Renaming GUI Files and Tags3.9 Exporting a GUI to a Single M-File4、GUIDE Layout Tools4.1 Laying Out GUIs - The Layout Editor4.2 Aligning Components in the Layout Editor4.3 Setting Component Properties - The Property Inspector 4.4 Viewing the Object Hierarchy - The Object Browser 4.5 Creating Menus - The Menu Editor4.6 Setting the Tab Order - The Tab Order Editor5、Programming GUIs5.1 Understanding the GUI M-FileSharing Data with the Handles Structure5.2 Managing GUI Data with the Handles Structure Example: Passing Data Between Callbacks5.3 Designing for Cross-Platform Compatibility5.4 Types of Callbacks5.5 Interrupting Executing Callbacks5.6 Controlling Figure Window Behavior6、Application Examples6.1 GUI with Multiple Axes6.2 List Box Directory Reader6.3 Accessing Workspace Variables from a List Box6.4 A GUI to Set Simulink Model Parameters6.5 An Address Book Reader。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

qiumu退出柚籽M学校:大学士发短消息当前离线math 管理员帖子精华积分威望金钱阅读权限在线时间7376 14 8506 173 M 点 1737 M 币 200 4690 小时发短消息加为好友当前在线需要协助么?点击这里联系我们的工作人员引用 报告 评分 回复 TOP帖子精华积分威望金钱阅读权限在线时间M 学校:大学士柚籽718 5 1004 46 M 点 1092 M 币 50 746 小时发短消息加为好友当前离线3#大中小发表于 2007-11-12 02:19 只看该作者3、怎么获得和设置控件的属性通俗的说,就是我怎么获取 编辑框里的字符,滑块现在的位置,pop up 里被选中的选项,如何控制 static text 显示我要求的信息 控件的属性当然远不止我刚刚说的。

在你需要的地方插入以下代码:设置:set (handles.你控件的tag,'要设置的属性名','要设置的属性值')获取:get (handles.你控件的tag,'要获取的属性名') 比如:set(handles.edit1,'string','hello world');help 里可以看到所有可能有用的属性MATLAB->Creating Graphical User Interfaces->Laying Out GUIs and Setting Properties->What Properties Do I Need to Set?4. 数据怎么在不同的控件之间传递知道了GUI 的数据管理规则,这个就很简单了。

-------------------先看在一个GUI 界面内部的传递的数据 每一个控件的回调函数头:function myc_Callback(hObject, eventdata, handles)第一个参数是hObject ,是跟这个callback 所关联的控件的handles ,在它自己的callback 下,可以用代号-> hObject 来调用它。

不用管那么麻烦的概念,只用知道,控件自己的回调函数调用自己的属性,只用hObject.属性名 就可以了(中间一点)。

第二个参数是MATLAB的保留参数第三个handles,是这个GUI界面的代号。

可以通过它获取这个界面的所有信息。

所以在控件A自己的回调函数中,要获取或者设置别的控件的属性,就用 handles.别的控件Tag.属性------------------------------handles hObject 都是结构体。

正常的编程概念。

handles格式是一个存放数据的缸。

控件的handles是小缸,它的名字叫做hObject;GUI界面的handle是一个大缸,并且这个缸名字也叫做handles;大缸里存放了所有的小缸和所有用户数据,你只需 handles.控件A的tag 就可以存取控件A的信息。

那我怎么把自己计算出或者别的什么数据放到这个缸里呢?^_^ 在任何地方handles.自己的变量名 = 某些值(其实也就是给结构体添加成员变量)这样你就定义了自己的变量。

在任何地方b=handles.自己的变量名(结构名加点号来引用成员变量)就可以得到这个变量值,同样也可以修改它。

别忘了使用guidata(hObject, handles);(不用改,直接黏贴)在函数末尾来保存你对handles和hObject的操作。

(不然你自定义的变量就没了)-----------------------5、在不同GUI之间传递数据-----------这部分是以前写的我发现我的理解有些问题---所以我现在传递数据用的application data的方法,没用这个-。

可能还没理解透output的函数作用------------------------传入那就来看打开一个GUI界面时,传给他的参数有哪些。

function mygui_OpeningFcn(hObject, eventdata, handles, varargin)所有的启动参数都是通过varargin传到它的OpeningFcn里面的。

那启动参数可以是哪些呢?1、figure,也就是窗口参数。

比如说position之类例如:打开这个GUI时,使用这个命令mygui('Position',[434 234 234 34])则表示打开窗口在这个位置;还有哪些可控属性可以查help。

2、自定义参数。

如果传入的参数不是figure的属性(matlab查找不到你输入的属性名),则你输入的参数作为一个向量存放在varargin里面。

比如mygui('路人甲','80‘),那varargin{1}存放了'路人甲',varargin{2}=’80‘那mygui中对这读取两个数据进行反应,就达到了传入参数的目的。

传出那怎么把数据传出来呢?将你要输出的数据存在handles.output里面在GUI任意地方handles.output=数据1;handles.secend_output=数据2;然后在GUI的outputFcn里面加上varaginout{1}=handles.output;varaginout{2}=handles.secend_output;这样就把数据传出来了。

看每一个GUI的最外层的那句function varargout = mygui(varargin) 看输入输出,就是这样了。

把GUI本身就是一个函数,b=mygui(一些传入的参数) 就执行GUI并返回结果则b就得到了传出来的结果。

---------------------------------------------------------------------------------;P[本帖最后由柚籽于 2008-4-6 15:44 编辑]需要协助么?点击这里联系我们的工作人员引用报告评分回复 TOP帖子精华积分威望金钱阅读权限在线时间M学校:童生小小驴阿易15160 M点0 M币1016 小时发短消息加为好友当前离线4#大中小发表于 2007-11-13 15:45 只看该作者回复 3# 的帖子大概懂了,但是不会用,如果能各种功能,都来个实际程序给我们看看,学习起来更容易。

光看文字,很难理解。

需要协助么?点击这里联系我们的工作人员引用报告评分回复 TOP帖子精华积分DennyM学校:童生canarios15175#大中小发表于 2007-11-16 17:45 只看该作者Button Groups ------------------function .......switch get(hObject,'Tag'); %注意这里的hObject和别的不同,并不是指这个BUttonGroup,而是指在组里面,被选中的那个控件case 'radio button1' %按钮1的tag %。

case '按钮2的tag' %。

end ----------附:所以在这里,如果要拿到button groups本身的话,就用handles.它的tag名中间一个点。

威望金钱阅读权限在线时间0 M 点 0 M 币 10 46 小时发短消息加为好友当前离线写的好,本人也想写这样的一个总结的。

在help 里好像hObject 就是指 botton group ,我后面试过了就是被选中的那个控件 ,结果和楼主的结果是一样的。

引用 报告 评分 回复 TOP帖子精华积分威望金钱阅读权限在线时间DennyM 学校:童生canarios 15 0 17 0 M 点 0 M 币 10 46 小时发短消息加为好友当前离线6#大中小发表于 2007-11-16 17:47 只看该作者总结的很不错,本人也想做这样的总结的,有人做了更好了,可以为我所用,谢谢。

引用 报告 评分 回复 TOP帖子精华积分威望金钱阅读权限在线时间四季M 学校:秀才shixiuao 35 0 37 0 M 点 0 M 币 10 40 小时发短消息加为好友当前离线7#大中小发表于 2007-11-16 19:19 只看该作者大家都说不错,看来应该是不错的啦,我刚学,正好借鉴一下.引用 报告 评分 回复 TOPjasonryan8#大中小发表于 2007-11-18 11:10 只看该作者帖子精华积分威望金钱阅读权限在线时间M学校:秀才62741 M点7 M币10166 小时发短消息加为好友当前离线我们的课程用MATLAB的地方相当的多,最近在给老师写程序,GUI是最后的一步。

以前的GUI总是有很多不明白的地方,以后还请大家多多指教!引用报告评分回复 TOP帖子精华积分威望金钱阅读权限在线时间M学校:童生peter19190 M点22 M币1010 小时发短消息加为好友当前离线9#大中小发表于 2007-12-19 12:36 只看该作者Thank You!:) 谢谢楼主!受益匪浅!:handshake引用报告评分回复 TOP帖子精华小春M学校:童生gbc610#大中小发表于 2007-12-20 10:50 只看该作者THANK YOU有收获,谢谢:handshake发短消息当前离线最近访问的版块。

相关文档
最新文档