经典GUI基础入门:MATLAB中GUI用户图形界面学习
MATLAB-图形用户界面 GUI
第 8 章 图形用户界面GUI假如读者所从事的数据分析、解方程、计算结果可视工作比较单一,那么一般不会考虑图形用户界面(Graphical User Interfaces ,GUI )的制作。
但是如果读者想向别人提供某种新的设计分析工具,想体现某种新的设计分析理念,想进行某种技术、方法的演示,那么图形用户界面也许是最好的选择之一。
MATLAB 本身提供了很多的图形用户界面,如sisotool “单输入单输出控制系统设计工具”、fdatool “滤波器设计和分析工具”等。
这些工具的出现不仅提高了设计和分析效率,而且改变原先的设计模式,引出了新的设计思想,改变了和正在改变着人们的设计、分析理念。
正是出于这种观察,作者将图形用户界面内容列入本教程。
本章由四个精心设计的算例组成。
这四个算例,一方面尽可能多地向读者展现构成GUI 的各种控件或组件,另方面借助算例中回调函数的编写较快地将读者引向GUI 制作的纵深。
本书作者相信:读者只要耐心地按照示例进行操作,便能在愉快感受GUI 成功制作的同时,事半功倍地掌握GUI 的制作技巧。
8.1 图形用户界面入门示例【例8.1-1】为演示归一化二阶系统121)(2++=s s s G ζ中阻尼比ζ对单位阶跃响应的影响,需要制作如图8.1-1所示的用户界面图8.1-11)图8.1-2 进入GUIDE开发环境的默认引导对话窗图8.1-3 默认的空白用户界面开发环境GUIDE 2)●●点选“轴Axes”图标;●点选“静态文本框Static Text”图标●点选“可编辑文本框Edit Text ”图标图8.1-4 3)界面组件的参数设置●用户界面窗的参数设置⏹,再点击界面编辑器工具条上的图标,图8.1-5 ●●●●图8.1-6 4)●点击工具条上的图标,●●●图8.1-7图8.1-85)●,点击HOME工具带NAVIGATE导航区上的Go To转至图标●●get(hObject,'String'); %zeta=str2double(get(hObject,'String')); %handles.t=0:0.05:15; %handles.y=step(tf(1,[1,2*zeta,1]),handles.t); %cla %line(handles.t,handles.y) %●●,再点击界面编辑器(或M文件编辑器)上的图标,图8.1-9图8.1-106)〖说明〗8.2 控件创建及应用示例本小节仍以算例为依托,详细讲述用户界面的创建步骤和注意要点。
第七章Matlab的图形用户界面GUI
:列表框(listbox),列表框列出一些选项的清单, 列表框(listbox),列表框列出一些选项的清单, 列表框(listbox) 并允许用户选择其中的一个或多个选项, 并允许用户选择其中的一个或多个选项,一个或多个的模 式由Min Max属性控制 Min和 属性控制。 式由Min和Max属性控制。Value 属性的值为被选中选项的 序号,同时也指示了选中选项的个数。 序号,同时也指示了选中选项的个数。 当单击鼠标按钮选中该项后,Value属性的值被改变 属性的值被改变, 当单击鼠标按钮选中该项后,Value属性的值被改变, 释放鼠标按钮的时候Matlab执行列表框的回调程序。 Matlab执行列表框的回调程序 释放鼠标按钮的时候Matlab执行列表框的回调程序。 列表框的“Style”属性的默认值是 listbox”。 属性的默认值是“ 列表框的“Style”属性的默认值是“listbox”。 :复选框(checkbox),又称检查框,它由一个标注 复选框(checkbox),又称检查框, (checkbox) 字符串( String”属性中设置 属性中设置) 字符串(在“String”属性中设置)和字符串左侧的一个 小方框所组成。选中时在方框内添加“ 符号, 小方框所组成。选中时在方框内添加“√”符号, Value”属性值设为 1”;未选中时方框变空, 属性值设为“ “Value”属性值设为“1”;未选中时方框变空, Value”属性值设为 0”。 属性值设为“ “Value”属性值设为“0”。复选框一般用于表明选项的 状态或属性。 状态或属性。
: 弹出式菜单(Pop-up 弹出式菜单(Pop(Pop
matlabGUI人机用户界面设计[6]
图7-18 对齐工具对话框
在界面之中还需要创建菜单,创建菜单能够经过菜单编辑器完毕。单击工具栏上旳菜单编辑器按钮,能够打开菜单编辑器对话框,在对话框中单击创建新菜单按钮,则能够创建新旳菜单,设置菜单属性如图7-20所示。
以空白界面类型为例,单击“OK”按钮,这时MATLAB将开启GUIDE旳图形界面,如图所示。
图 具有空白界面旳GUIDE图形界面
在GUIDE界面旳左侧为MATLAB旳控件面板,控件面板包括了能够在画布上绘制旳图形控件: (Push Button)、单项选择按钮(Toggle Button)、单项选择框(Radio Button)、复选框(Checkbox)、文本框(Edit Text)、静态文本框(Static Text)、滚动条(Slider)、组别框(Frame)、列表框(Listbox)、下拉框(Popup Menu)和坐标轴(Axes)。
2.1 GUIDE工具入门
使用图形句柄创建GUI旳过程繁琐,而且在程序编写好之前,顾客图形界面是不可见旳。所觉得了便于创建图形顾客界面,MATLAB提供了一种开发环境,能够帮助顾客创建图形顾客界面,这就是GUIDE——Graphic User Interface Development Environment。 在MATLAB中开启GUIDE旳措施: >>guide或者经过“Start”菜单项选择择“MATLAB”下旳“GUIDE”命令。
这时,将直接开启GUIDE Quick Start窗体,在这个窗体中,能够初步选择图形顾客界面旳类型,如图所示。
图 GUIDE旳迅速开启界面
在迅速开启界面中,能够选择四种类型旳新建界面:* 空白界面(Black GUI)。* 具有图形控件旳界面(GUI With Uicontrols)。* 具有菜单和坐标轴旳界面(GUI With Axes and Menu)。* 模式对话框(Modal Question Dialog)。
第七讲MATLAB图形用户界面(GUI)设计
第七讲MATLAB图形⽤户界⾯(GUI)设计第7讲MATLAB图形⽤户界⾯(GUI)设计图形⽤户界⾯(GUI, Graphical User Interface)是由图形控件构建的⽤于⼈与计算机交互信息的界⾯。
在图形⽤户界⾯上,⽤户可以根据界⾯上的提⽰信息完成⾃⼰的⼯作,⽽不需要记忆⼤量繁琐的命令,只需通过⿏标、键盘等便捷的⽅式与计算机交互信息、选择想要运⾏的程序、控制程序的运⾏、实时显⽰图形信息。
MATLAB创建的图形⽤户界⾯对象有三类:⽤户界⾯控件,如按钮、列表框、编辑框等;下拉菜单,如菜单、⼦菜单;内容菜单,如弹出式菜单。
⼀、命令⾏建⽴⽤户界⾯的⽅法1、创建控件命令:uicontrol调⽤格式:1)uicontrol(‘PropertyName1’,value1, ‘PropertyName2’,value2,……)功能:在当前图形⽤户的界⾯上,应⽤当前制定的属性值创建控件;2)h=uicontrol(‘PropertyName1’,value1, ‘PropertyName2’,value2,……)功能:在当前图形⽤户的界⾯上,应⽤当前制定的属性值创建控件,并返回控件的句柄;3)uicontrol(FIG, ‘PropertyName1’,value1, ‘PropertyName2’,value2,……)功能:在句柄FIG指定的图形⽤户界⾯上,创建控件;4)h=uicontrol(FIG, ‘PropertyName1’,value1, ‘PropertyName2’,value2,……) 功能:在句柄FIG指定的图形⽤户界⾯上,创建控件,并返回控件的句柄。
说明:函数中的PropertyName参数的参数值有:Push buttons(命令按钮)、sliders (滚动条控件)、Radio button(单选按钮)、Check box(复选框)、Edit text (可编程⽂本框)、Static text(静态⽂本框)、Pop_up menus(弹出式菜单)、listbox(列表框)、Toggle button(开关按钮)、Axes(坐标轴)、Panel(⾯板控件)、Button group(按钮组框)、ActiveX control(ActiveX 控件)。
经典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在编辑完这些属性后,直接点击右上角的“关闭”按钮,关闭属性查看器,此时属性会自动保存。
Matlab图形用户界面GUI
六、对象浏览器
利用对象浏览器,可查看当前所创建的图形对象。从对象设计编辑器界面的工 具栏上选择,或者选择“View”菜单下的“Object Browser”选项,可以打开 对象浏览器。
图 7-9 对象浏览器
19
第二节 GUI向导设计
GUI的向导设计,简单地说,就是利用GUI设计工具集实现多种 控制对象的设计。本节我们将通过实例实践其具体操作过程。 【例7-1】 设计一个带有三个按钮和一个坐标轴的图形用户界面,当用 鼠标点击三个按钮时,分别在坐标轴内画sphere,和membrane三个图 形。peaks 创建控件 前面我们已经建立了带有一个坐标轴和三个按钮控件的图形界面, 这里就不赘述了,如前图7-3所示。 设置控件对齐方式 若控件排列不够整齐,当控件个数较少时,逐个调整尚可,但当控 件个数较多时,逐个调整将变得麻烦,费时,这时我们可以应用几何 位置排列工具对控件的位置进行调整。 首先要将待调整的控件同时选中。选中方法有两种:一是按住 “Ctrl”键,用鼠标左键逐一点击要调整的控件;二是按住鼠标左键 进行拖拽框选,然后点击工具栏上的打开几何位置排列工具窗口,再 点击下面的,使得所选的控件左对齐,点击“确定”后,界面设计编 辑器效果如图7-10所示。
通常状态下,弹出式菜单以矩形的形式出现,矩形中 含有当前选择的选项,在选项右侧有一个向下的箭头来表 明该对象是一个弹出式菜单。当指针处在弹出式菜单的箭 头之上并按下鼠标时,出现所有选项。移动指针到不同的 选项,单击鼠标左键就选中了该选项,同时关闭弹出式菜 单,显示新的选项。
选择一个选项后,弹出式菜单的“Value”属性值为该 选项的序号。
单选按钮一般用于在一组互斥的选项中选择 一项。为了确保互斥性,各单选按钮的回调程序 需要将其它各项的“Value”值设为“0”。
MATLAB-GUI图形用户界面设计分析
1) 双击设计工作区的空白局部,翻开整个图形窗的属性框。
MuUnnuiBtsa或r: FnoonnteUnits可选择%:图i形nc窗he是s(英否寸使)用,标ce准nt菜im单eters
(厘N米am),e: cnaocrumlaatloizred%(按图比形例窗缩名放称),points(点阵), pixels
翻开GUI设计工作台的命令:
guide
%翻开设计工作台启动界面
guide file %在工作台中翻开文件名为file的用户界面
菜单项[ File:New->GUI ] %翻开设计工作台启动界面
留意:guide命令中文件名不区分大小写。
翻开的GUI启动界面供给新建界面( Create New GUI )或 翻开已有界面文件( Open Existing GUI )的属性页。新建界面 可以选择空白界面、包含有控件的模板界面、包含有轴对象
riFghotn。tUnits: points
%字体大小的度量单位
Ho控riz件on句ta柄lATliaggn有m默en认t: 值Ce,nt建er议修%改对为齐带方有式具体含义的字 符S串tr,ing以: E增x加pr程ess序io可n 读性和%便待利显回示调的函字数符调用。
Tag: text1
%该静态文本框的句柄handles.text1
留意: 1) 先完成大致界面布局,再编写功能程序。 2) 界面风格要全都,且符合使用习惯。例如,一般习惯图形
区在上面或左面,把握区在下面或右面等等。
2023/10/12
3
GUI图形用户界面
例如,以本次试验的内容“计算器”为例。
1) 功能分析:完成数字的四则运算,以及一局部常用的科学 计算:sin, cos, log等等。
matlab用户图形界面设计GUI
一、菜单设计
• Matlab用户菜单对象是图形窗口的子对象, 所以菜单设计总是在某一个图形窗口中进 行。Matlab的图形窗口有自己的菜单栏, 为了建立用户自己的菜单系统,需要先将 图形窗口的MenuBar属性设置为none,以取 消图形窗口的默认菜单,然后再建立自己 的菜单。 • 取消默认菜单:figure('menubar','none')
• 1.建立用户菜单
• 用户菜单通常包括一级菜单(菜单条)和二级菜单,有时 还需要继续建立下级菜单如三级菜单等。而每一级菜单 又包括若干菜单项。 • 建立用户菜单的函数为:uimenu,根据不同的调用格 式可以创建一级菜单项和子菜单项。 • 建立一级菜单的调用格式: • 一级菜单项句柄=uimenu(图形窗口句柄,属性名1,属 性值1,属性名2,属性值2,…) • 建立子菜单项的调用格式: • 子菜单项句柄=uimenu(一级菜单项句柄,属性名1,属 性值1,属性名2,属性值2,…)
• (5)列表框list box,列表框列出可供选择的一些选项。 • (6)弹出框popup menu,弹出框平时只显示当前选项, 单击右端的下拉箭头即可弹出一个列表框,列出全部 选项,作用和列表框类似。 • (7)编辑框edit box,可供用户输入数据之用,可在编 辑框中提供默认的输入值,随后用户可以修改。 • (8)滑动条slider,滑动条可以用图示的方式输入指定 范围内的一个数值,可以移动滑动条中间的游标来改 变对应的数值。 • (9)静态文本static text,是在对话框中显示的说明性文 字,一般用来给用户提供必要的提示,不能在程序执 行过程中改变文字说明。 • (10)边框frame,主要用于修饰用户界面,使用户界面 更友好,也可用边框在图形窗口中圈出一块区域,将 某些控件对象组织在这块区域中。
matlab-GUI-快速入门
一、图形顾客界面开发环境(GUIDE)
Matlab提供了一套可视化旳创建图形窗口旳工具,使 用图形顾客界面开发环境可以便地创建GUI应用程序,它 能够根据顾客设计旳GUI布局,自动生成M文件旳框架,顾 客使用这一框架编制自己旳应用程序。
图形顾客 界面GUI设计 窗口由菜单栏、 工具栏、控件 工具栏以及图 形对象设计区 等4个功能区 构成。
左图为空白 GUI模板情形
GUI设计 窗口旳菜单栏 有File、Edit、 View、Layout、 Tools和Help 6 个菜单项,使 用其中旳命令 能够完毕图形 顾客界面旳设 计操作。
编辑工具在菜单栏旳下方,提供了常用旳工具;设计 工具区位于窗口旳左半部分,提供了设计GUI过程中所用旳 顾客控件;空间模板区是网格形式旳顾客设计GUI旳空白区 域。
2. 控件对象旳描述
Matlab中旳控件大致可分为两种,一种为动作控件, 鼠标点击这些控件时会产生相应旳响应。一种为静态控件, 是一种不产生响应旳控件,如文本框等。
每种控件都有某些能够设置旳参数,用于体现控件旳外 形、功能及效果,既属性。属性由两部分构成:属性名和属 性值,它们必须是成对出现旳。
① 按钮(Push Buttons):执行某种预定旳功能或操作;
① 将控件对象放置到布局区
用鼠标选择并放置控件到布局区内; 移动控件到合适旳位置; 变化控件旳大小; 选中多种对象旳措施。
一 种 简 朴 旳 布 局 示 例
② 激活图形窗口
如所建立旳布局还没有进行存储,可用File菜单下旳 Save As菜单项(或工具栏中旳相应项),按输入旳文件 旳名字,在激活图形窗口旳同步将存储一对同名旳M文件 和带有.fig扩展名旳FIG文件。
在Matlab中使用GUI工具箱进行界面设计
在Matlab中使用GUI工具箱进行界面设计Matlab是一款功能强大的科学计算软件,它不仅可以进行数值计算和数据分析,还提供了用于图形用户界面(Graphical User Interface,简称GUI)的工具箱。
通过GUI工具箱,用户可以设计出直观、易用的界面,方便自己和他人使用和操作自己编写的程序。
GUI工具箱提供了丰富的可视化组件,如按钮、文本框、下拉菜单等,以及一系列的回调函数,使得在Matlab环境中进行GUI设计变得相对简单。
下面我将简单介绍一下在Matlab中使用GUI工具箱进行界面设计的流程和常用技巧。
首先,打开Matlab软件,创建一个新的GUI应用程序。
在Matlab命令窗口中输入"guide"命令,即可打开GUI编辑器。
在GUI编辑器中,可以选择默认的空白界面或基于模板的预设界面进行设计。
在设计界面之前,需要明确自己的需求和设计目标。
例如,设计一个简单的计算器界面,包含输入框、按钮和显示框等组件。
接下来,可以通过拖拽和放置组件等方式来设计界面。
在GUI编辑器的左侧可以看到工具箱,其中包含了各种可用的界面组件。
不同组件有不同的属性,可以通过调整属性值来实现个性化的设计。
例如,我们可以在界面上放置一个输入框组件,用于用户输入计算器的操作数。
在属性编辑器中,可以设置输入框的位置、大小、默认值等属性。
同样地,我们可以在界面上放置一个按钮组件,用于用户点击进行计算。
在属性编辑器中,可以设置按钮的文本、位置、大小等属性。
在设计完界面之后,需要为按钮组件添加回调函数,以响应用户的操作。
回调函数是一种特殊的函数,当用户与界面交互时会被调用。
回调函数可以通过访问界面上的组件来获取用户输入的数据,并进行相应的计算和操作。
在Matlab中,可以通过编辑按钮的"Callback"属性来设置回调函数。
例如,我们可以为计算按钮添加如下的回调函数:function calculateButton_Callback(hObject, eventdata, handles)operand = str2double(get(handles.inputBox, 'String'));result = calculate(operand);set(handles.outputBox, 'String', num2str(result));上述回调函数中,首先通过获取输入框组件的字符串,将用户输入的操作数转换为浮点数。
GUI入门教程
学习本教程的目的:学会用matlab gui设计用户界面,并编写响应程序。
一、GUI基础知识图形用户界面(Graphical User Interfaces ,GUI )则是由窗口、光标、按键、菜单、文字说明等对象(Objects)构成的一个用户界面。
用户通过一定的方法(如鼠标或键盘)选择、激活这些图形对象,使计算机产生某种动作或变化,比如实现计算、绘图等。
Matlab中设计图形用户界面的方法有两种:使用可视化的界面环境和通过编写程序。
本教程主要通过使用可视化的界面环境来实现GUI界面的设计启动matlab的GUI界面在matlab主界面的菜单栏File中New下的GUI,如图1所示图1单击GUI后会出现如图2界面图2Matlab为GUI设计一共准备了4种模板,分别是:◆Blank GUI(Default)(空白模板,默认);◆GUI with Uicontrols(带控件对象的GUI模板);◆GUI with Axes and Menu(带坐标轴与菜单的GUI模板);◆Modal Question Dialog(带模式问题对话框的GUI模板)。
我们入门时经常会使用第一个模板,即Blank GUI(空白模板)。
单击图2中的ok会出现下图界面(图3)图3图形用户界面GUI设计窗口由菜单栏、工具栏、控件工具栏以及图形对象设计区等4个功能区组成。
菜单栏:GUI设计窗口的菜单栏有File、Edit、View、Layout、Tools和Help 6个菜单项,使用其中的命令可以完成图形用户界面的设计操作。
工具栏:编辑工具在菜单栏的下方,提供了“编程”时常用的工具,例如可以进行保存、撤销、运行等等操作。
控件工具栏:各个模块位于窗口的左半部分,提供了设计GUI 过程中所用的用户控件;了解各个模块(用户控件)的用途和作用对GUI的设计起到比较大的作用。
图形对象设计区:该区域是网格形式的用户设计GUI的空白区域,可以把用户控件做到区域里。
MATLABGUI入门实例详解,让你轻松掌握GUI
MATLAB GU入门实例详解,让你轻松掌握GUI Matlab实例讲解本文档通过一个简单的实例让你学会matlab GUI的制作流程。
首先,图形用户界面GUI(Graphical User In terfaces) 是一种用户和计算机进行信息交流的工具和方法,由各种图形对象组成。
在这种用户界面下,用户的命令和对程序的控制是通过鼠标等输入设备“选择”各种图形对象来实现的。
开发者只需在由软件开发工具自动生成的程序代码中添加自己的运算或控制代码,就可以完成应用程序的设计。
例建立加法计算器程序步骤:1(新建一个GUI文件:选择Blank GUI(Default) 2( 进入GUI开发环境以后添加两个编辑文本框,6个静态文本框,和一个按钮,布置如下图所示;(+ = 数据1绿色显示框等都是静态文本框)布置好各控件以后,就可以来为这些控件编写程序来实现两数相加的功能了■f Jx f □1*5阖backb one. County sta nding whe n Lieute nant, guerrilla activity beh ind en emy lines in the water zone of Wujia ng County border. I n early 1940,Chang Shen Liq un sectors Yu Qin gzhi is appo in ted to three district and three en emy Guard Capta in. Yu assumed office, the positive inno vati on gover nan ce, establishi ng in formati on line, master puppet performa nee. Three3(为数据1文本框添加代码点击上图所示红色方框,选择edit1_Callback,光标便立刻移到下面这段代码的位置。
Matlab-GUI学习指南
第七章 GUIDE入门
提示:
第3页,共92页。
第七章 GUIDE入门
图7-1 MATLAB图形用户界面示例
第4页,共92页。
第七章 GUIDE入门
通过如图7-1所示的界面,用户可以不必过多了解内部细节就可 以使用MATLAB的强大数据可视化和计算的功能了。例如,单击用 户界面右边的按钮,可以在图形窗体的绘图区域绘制各种图形,同 时在文本显示区域显示具体命令行代码,如图7-2所示。
HandleVisibility = on
HitTest = on
Interruptible = on Parent = [101.001] Selected = off
SelectionHighlight = on Tag = Type = line UIContextMenu = []
UserData = [] Visible = on
005 % 修改坐标线的色彩 006 set(0,'DefaultAxesXColor',[0.5 0 0]);
007 set(0,'DefaultAxesYColor',[0.5 0 0]); 008 % 修改文本的色彩
第24页,共92页。
第七章 GUIDE入门 009set(0,'DefaultTextColor',[0 0.5 0]);
除了能够直接设置具体图形对象的属性以外,MATLAB还允许用户 对图形对象的默认属性进行修改。所谓图形对象的默认属性,就是那些 MATLAB图形对象所固有的预定义的“出厂设置”,例如在默认的条件 下图形窗体的背景色为深灰色,而坐标轴的背景色为白色等,在没有指定 特殊的属性值之前,MATLAB就使用这些默认的图形对象属性来显示图 形对象。
matlab gui入门到精通
图形用户界面(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 ζ的归一化二阶系统,制作一个能绘制该系统单位阶跃响应的图形用户界面。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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在编辑完这些属性后,直接点击右上角的“关闭”按钮,关闭属性查看器,此时属性会自动保存。
回到GUIDE,如果控件上的文字被部分隐盖,此时可以通过鼠标拖拽改变控件的大小。
二、添加控件和设置属性在正式讲解之前,我们先讲解下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在编辑完这些属性后,直接点击右上角的“关闭”按钮,关闭属性查看器,此时属性会自动保存。
回到GUIDE,如果控件上的文字被部分隐盖,此时可以通过鼠标拖拽改变控件的大小2.3 重复上面的操作(1)将第二个“Static Text”的“string”改为“=”,“fontsize”为20(2)第三个“Static Text”的“string”改为“My Adder GUI”,“fontsize”为20于是,我们将得到如下所示的GUI界面2.4 下面双击Edit Text,修改编辑文本框的属性(1)第一个“Edit Text”的用来存储第一个加数,我们将“string”改为“0”,“tag”改为“input1_editText”(2)第二个“Edit Text”的用来存储第二个加数,我们将“string”改为“0”,“tag”改为“input2_editText”(3)第三个“Edit Text”的“string”改为“0”,“tag”为“answer_stat ic Text”2.5 修改Pushbutton按钮的属性,“string”改为“Add!”,“tag”改为“a dd_pushbutton”再次预览下我们现在得到的GUI界面3、重新布局和移动控件位置,使其美观将上面编辑完的GUI程序保存为myAdder,此时在当前目录下,Matlab将自动生成如下来个两个文件myAdder.m和myAdder.fig。
.fig文件包含了程序的图形用户界面,.m文中包含了GUI所需的回调函数和其他必须代码。
三、书写GUI回调函数(callback)代码在保存GUI程序时,Matlab会自动生成.fig和.m文件,其中的.m就是我们现在要操作的对象。
我们就是M文件中添加控件的回调函数相应用户的操作!这也是GUI编程的核心内容,它要求你必须掌握Matlab基本编程以及图形句柄语句!打开.m文件,发现里面有很多function的代码,看得我们眼花缭乱,呵呵,不要胆怯!本教程是初级教程,我们只涉及里面的callback,其他的我们可以暂时置之不理!至于其它的我们以后的教程中对做相关介绍!在正式讲解之前,一个小使用技巧,Matlab Editor(代码编辑器)工具栏显示函数按钮,可以让我们快速跳转我们需要的函数位置!这个在.m内容很多的时候很有用哦!1、在Editor中工具栏的函数Show Function中选择input1_editText_Callbac k或者右击tag为input1_editText的编辑文本框,View Callback→Callback2、此时光标会跳转到.m文件的function input1_editText_Callback处,方便我们直接编辑1.function input1_editText_Callback(hObject, eventdata, handles)2.% hObject handle to input1_editText (see GCBO)3.% eventdata reserved - to be defined in a future version ofMATLAB4.% handles structure with handles and user data (see GUIDATA)5.6.% Hint: get(hObject,'String') returns contents of input1_editText as text7.% str2double(get(hObject,'String')) returns contents of8.% input1_editText as a double复制代码在上面代码下添加如下MATLAB代码1.% handles 包含figure中所有图形对象句柄的结构体,如果我们想引用tag为mytag的控件,使用handles.mytag2.% set/get 函数是用来设置/获取某个控件属性3.% 使用get命令获取第一个加数,并将它转换成数值4.input = str2num(get(hObject,'String')); % string属性是字符串,所以必须转换成数值5.6.% 检验输入是否为空,是则将它置为07.if (isempty(input))8.set(hObject,'String','0')9.end10.11.% 保存handles结构体,只要在handles结构体有改变时,才需要保存12.guidata(hObject, handles); % 这里由于handles没有改变,故这里其实没有必要,但是为了避免潜在的不必要麻烦,建议在所有Callback最后都添加该命令复制代码3、为input2_editText_Callback添加完全相同的代码4、编辑add_pushbutton_Callback回调函数,使用上面提到的方法,将光标定位到1.% --- Executes on button press in add_pushbutton.2.function add_pushbutton_Callback(hObject, eventdata, handles)3.% hObject handle to add_pushbutton (see GCBO)4.% eventdata reserved - to be defined in a future version ofMATLAB5.% handles structure with handles and user data (see GUIDATA)复制代码在后面我们添加上如下代码1. a = get(handles.input1_editText,'String');2. b = get(handles.input2_editText,'String');3.% a和b是字符串变量,我们需要使用str2double函数将其转换为数值4.% 然后才能相加,否则字符串是没法相加的5.total = str2num(a) + str2num(b); % 格式转换,转换为数值6.% 由于string属性是字符串,所以必须将两个数的和转换为字符串7. c = num2str(total); % 转换为字符串8.% 将结果赋值给answer_staticText空间的string属性,于是就可以显示结果了9.set(handles.answer_staticText,'String',c);10.guidata(hObject, handles); % 更新结构体复制代码恭喜您,到此为此这个GUI程序就完成了!接下来就可以运行和演示它了!有一个小技巧要告诉大家的,如果您在第一次保存GUI程序时,不想让Matlab 为每一个callback回调函数自动生成注释文本,可以如下操作:File→Prefer ences...如果不想让Matlab自动生成fig文件,而只是生成M文件,可以如下操作:To ols→GUI Option四、GUI程序打开、运行和发布1、想在GUIDE中打开一个写好的GUI程序,可有两种方法1.1 如上面所说的,在打开GUIDE界面时,我们可以选择“Open Existing GUI”,然后选中你需要打开的GUI程序1.2 直接在Current Directory选中*.fig文件,然后右击选择“Open In GUID E”2、运行编辑好的GUI程序方法主要有三种方法2.1 点击GUIDE工具栏的run按钮,如下图所示2.2 从Command Window命令行运行,首先将MATLAB当前目录切换到*.fig和*. m文件所在目录(两个必须同在当前目录或者都在搜索路径下)接着在Command Window中输入GUI的文件名(不需要扩展名)myAdder,然后回车2.3 直接在Current Directory中选中myAdder.m,右击选择“Run File”即可通过上面三种方法中任意一种,GUI程序将开始运行,并显示如下3、执行GUI程序功能在两个文本框中输入分别输入两个加数,然后点击Add!按钮,此时和将显示在“=”右边的文本框中!。