matlabGUI学习资料
2019-Matlab的图形用户界面GUI-文档资料

2
整个GUI的实现过程可以分为以下几步: 使用界面设计编辑器进行GUI界面布局设计; 理解应用程序M文件中所使用的编程技术; 编写GUI组件行为响应控制(即回调函数)代码。 一、启动GUIDE
在Matlab中,GUIDE提供了多种设计模板以方便用户使 用GUI。这些模板均包含相关的回调函数,用户可以打开它 所对应的M文件,看到它们的工作方式,或修改相应的函数, 从而实现自己需要的功能。
第七章 Matlab的图形用户界面GUI
GUI设计工具简介 GUI向导设计 GUI程序设计
1
第一节 GUI设计工具简介
通常在开发一个应用程序时都会尽量做到界面友好、 直观。最常用的方法就是使用图形用户界面。在Matlab中, 图形用户界面是一个包含多种对象的图形窗口。用户必须 对功能对象进行界面布局和编程,从而使用户在激活GUI的 功能对象时能够执行相应的行为。
弹:出式菜单的“Style”属性的默认值是 “popupmenu”,在“string”属性中设置弹出式菜单的选 项字符串,在不同的选项之间用“|”分隔,类似于换行。
9
:图文框(Panel),图文框是填充的矩形区域。一般用来 把其它控件放入图文框中,组成一组。图文框本身没有回调程 序。注意只有用户界面控件可以在图文框中显示。由于图文框 是不透明的,因而定义图文框的顺序就很重要,必须先定义图 文框,然后定义放到图文框中的控件。因为先定义的对象先画, 后定义的对象后画,后画的对象覆盖到先画的对象上。
MATLAB_第6讲_GUI界面设计

25
6.2 控件对象及属性
1. GUI控件对象类型 Matlab中的控件大致可分为两种,一种为动作 控件,鼠标点击这些控件时会产生相应的响应。 一种为静态控件,是一种不产生响应的控件,如 静态文本框等。 控件对象是事件响应的图形界面对象。当某一 事件发生时,应用程序会做出响应并执行某些预 定的功能子程序(Callback).
11
1. 布局编辑器(Layout editor)
1) 将控件对象放置到布局区
用鼠标选择并放置控件到布局区内; 移动控件到适当的位置; 改变控件的大小; 选中多个对象的方法。
一 个 简 单 的 布 局 示 例
12
1. 布局编辑器(Layout editor)
2)激活图形窗口
点击 即可激活图形窗口,如所建立的布局还没有进 行存储,可用File菜单下的Save As菜单项(或工具栏中的 对应项),按输入的文件的名字,在激活图形窗口的同时 将存储一对同名的M文件和带有.fig扩展名的FIG文件。
27
1. GUI控件对象类型
5) 文本编辑器(Editable Texts):用来使用键盘输入字符串 的值,可以对编辑框中的内容进行编辑、删除和替换等 操作;
6) 静态文本框(Static Texts):仅用于显示单行的说明文字; 7) 滚动条(Slider): 可输入指定范围的数量值; 8) 组合板(Panel):在图形窗口中对控件分组组合; 9) 列表框(List Boxes):在其中定义一系列可供选择的字符串 10) 弹出式菜单(Popup Menus): 让用户从一列菜单项中选 择一项作为参数输入;
第6讲 MATLAB GUI界面设计
matlab学习7-GUI2

程序分析: 程序分析 a = get(handles.edit1,'String'); b = get(handles.edit2,'String'); 上面这行代码把用户输入的数据存入到变量a,变量 变量b中 上面这行代码把用户输入的数据存入到变量 变量 中; % a,b是字符型变量,在计算两者相加之前需把他们转换为数字型 是字符型变量, 是字符型变量 total = str2num(a) + str2num(b); 这段代码实现两数相加 c = num2str(total); set(handles.text3,'String',c); guidata(hObject, handles); 以上两行代码分别用来更新计算结果文本框和图形对象句柄, 以上两行代码分别用来更新计算结果文本框和图形对象句柄, 一般Callback回调函数都以 回调函数都以guidata(hObject, handles) 一般 回调函数都以 结束以更新数据
3.为数据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')); %检查输入是否为空 如果为空 则默认显示为 检查输入是否为空. 则默认显示为0 检查输入是否为空 如果为空,则默认显示为 if (isempty(input)) set(hObject,'String','0') end guidata(hObject, handles); 这段代码使得输入被严格限制,我们不能试图输入一个非数字。 这段代码使得输入被严格限制,我们不能试图输入一个非数字。
第五章 MATLAB里的GUI

创建图形用户界面的方法——图形句柄和GUIDE 都需要使用M语言编程,但是技术的侧重点不同。 MATLAB提供了基本的用户界面元素:包括菜单、快捷菜 单、按钮、复选框、单选框、文本编辑框、静态文本、下
拉列表框、列表框等。
句柄(handle)与句柄操作
什么是句柄?
句柄是图形对象的标识代码(唯一的身份),标 识代码含有图形对象的各种必要的属性信息。 各图形对象的句柄数据格式: 根屏幕 图形窗口 其它对象 0 正整数,表示图形窗口序号 对应的双精度浮点数
在GUIDE的界面的工具栏上包含了一些常用的工具,如图。
菜单编辑器
属性察看器
激活工具
对齐工具
M 文件编辑器
对象察看器
GUIDE工具栏上的工具按钮
图形用户界面的例子
在该图形用户界面中包含如下控件:
* 两个推按钮(push button),分别完成绘制三维 曲面和改变色彩的功能;
* 五个静态文本框(static text),分别用来完成显 示不同信息的功能; * 一个滚动条(slide),用来完成改变三维曲面上 的分隔线色彩; * 一个坐标轴(axes),用来显示三维曲面;
选择已经存在的图形界面文件,该文件的扩展名为 fig。 打开一个存在的GUI界面文件: >> guide gui_filename 这时在GUIDE中将显示已经创建好的图形界面外 观。
选择空白界面类型,并单击“OK”按钮,这时
MATLAB将启动GUIDE的图形界面,如图所示。
具有空白界面的GUIDE图形界面
例:
get(0,'DefaultFigureColor') —— 获得图形 窗口的省缺值 set(h,'DefaultLineColor','r') ——设置线的 颜色为红色 例:在图上添加文字注释,颜色为红色 set(gca,'DefaultTextColor',[1 0 0]) gtext('正弦') gtext('余弦') %鼠标取点 在轴对象上设置字对象的颜色省缺值为红色 继承该省缺值在图上添加红色的文字注释
经典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)我们只能从命令行(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学习笔记

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 GUI编程基础

Pop_up Menus
function .......
val=get(hObject,''Value'')
Switch val
case 1
%
case 2
%
defualt
......
end
Button Groups
function .......
switch get(hObject,''Tag'');%注意这里的hObject和别的不同,不是指Button Group,而是指在组里面被选中的那个控件
1、从最简单的开始
编程的基本思想是:我执行一个操作,程序做出一个反应。“一个操作”包括点击鼠标、拖动滑块、填写数据、选择选项等;“做出一个反应”包括计算、储存在哪里、贴个图出来、显示在哪里。
简言之:当点击按钮A时, 然后执行任务C,则进入按钮A的回调函数callback里,写下任务C的代码。
把自己计算出或者别的什么数据放到这个缸里,可以在任何地方:
handles.变量名 = 某些值
5、在不同GUI之间传递数据
传入:
先看打开一个GUI界面时,传给他的参数有哪些。
function mygui_OpeningFcn(hObject, eventdata, handles, varargin)
4. 数据dles是这个GUI界面的代号,可以通过它获取这个界面的所有信息。所以在控件A自己的回调函数中,要获取或者设置别的控件的属性,就用 handles.别的控件Tag.属性
handles hObject 都是结构体。handles格式是一个存放数据的缸。控件的handles是小缸,它的名字叫做hObject;GUI界面的handle是一个大缸,并且这个缸名字也叫做handles;大缸里存放了所有的小缸和所有用户数据,你只需handles.控件A的tag,就可以存取控件A的信息。