第9讲 MATLAB图形用户界面( GUI)

合集下载

在MATLAB中创建用户界面和GUI应用程序

在MATLAB中创建用户界面和GUI应用程序

在MATLAB中创建用户界面和GUI应用程序MATLAB是一种广泛应用的数学软件,对于数据分析和科学计算具有强大的功能。

然而,仅仅通过MATLAB的命令行窗口进行操作往往不够便捷,特别是当需要进行大量的重复性操作时。

为了解决这个问题,MATLAB提供了创建用户界面(User Interface,简称UI)和GUI(Graphical User Interface)应用程序的功能。

1. GUI应用程序的基本概念GUI应用程序可以通过可视化的方式与用户进行交互,通过按钮、滑块、文本框等控件来实现用户与程序的数据传递和操作。

在MATLAB中创建GUI应用程序的首要步骤是创建一个GUI窗口,可以通过MATLAB提供的GUIDE(GUI Development Environment)工具进行操作,也可以通过编写代码的方式来创建。

2. 使用GUIDE创建GUI应用程序GUIDE是MATLAB提供的一个可视化工具,可以帮助用户创建GUI应用程序。

使用GUIDE可以通过拖拽控件的方式来创建窗口,并使用属性编辑器对控件进行设置。

例如,可以添加按钮和文本框,并设置按钮的回调函数,以实现按下按钮时触发特定的操作。

GUIDE还提供了布局管理器,使得控件的排列和布局更加灵活。

创建完成后,GUIDE会生成一个.m文件和一个.fig文件,分别对应GUI应用程序的代码和界面。

3. 通过编写代码创建GUI应用程序除了使用GUIDE,用户还可以通过编写代码的方式来创建GUI应用程序。

首先,需要创建一个窗口,可以使用MATLAB中的`figure`函数来实现。

然后,可以使用不同的MATLAB函数来添加各种控件,例如`uicontrol`函数用于添加按钮,`uimenu`函数用于添加菜单等。

通过设置控件的属性和回调函数,可以实现控件的响应和交互。

4. GUI应用程序实例假设我们需要一个简单的计算器应用程序,用户可以输入两个数值并选择进行加法、减法、乘法或除法运算。

在Matlab中使用GUI设计用户界面

在Matlab中使用GUI设计用户界面

在Matlab中使用GUI设计用户界面引言Graphical User Interface (GUI) 是现代计算机软件中常用的一种类型用户界面,它通过图形化的形式提供了直观、易用的操作方式。

Matlab作为一种功能强大的数值计算软件,也提供了丰富的GUI设计工具,使得用户可以通过简单的拖拽和设置,快速地创建出美观实用的用户界面。

本文将介绍在Matlab中使用GUI设计用户界面的基本原理和步骤,并结合实例演示具体操作。

一、Matlab中的GUI设计工具Matlab提供了几种常用的GUI设计工具,包括GUIDE(GUI Development Environment)和App Designer。

GUIDE是Matlab较早期的一个GUI设计工具,提供了可视化的编辑界面,方便用户进行界面布局和交互事件的设置。

而App Designer是Matlab较新推出的GUI设计工具,相比GUIDE具有更加丰富的功能和更好的可视化编辑体验。

在本文中,我们将以App Designer为例来介绍Matlab中的GUI设计过程。

二、创建GUI应用程序在Matlab的主界面中,点击"APPS"菜单,选择"App Designer"打开App Designer界面,然后点击"Create App"按钮创建一个新的GUI应用程序。

在弹出的对话框中输入应用程序的名称并设置保存位置,点击"Create"按钮即可创建一个空的GUI应用程序。

三、设计用户界面在App Designer中,可以通过拖拽和调整控件来设计用户界面。

常用的控件包括按钮、文本框、下拉菜单、滑块等,用户可以根据需求自由选择和排列这些控件。

同时,还可以设置控件的属性,如大小、颜色、字体等,以及添加交互事件,如按下按钮后执行的操作。

四、设置控件属性和交互事件在设计好用户界面后,需要为每个控件设置相应的属性和交互事件。

利用Matlab的图形用户界面(GUI)功能,设计并实现实验主界面

利用Matlab的图形用户界面(GUI)功能,设计并实现实验主界面

(1)利用Matlab的图形用户界面(GUI)功能,设计并实现实验主界面;(2) 实现在“符号计算”图形用户界面中的各项符号计算功能,如实现Matlab的求极限、求导、求不定积分与定积分、级数求和、方程组的符号求解、常微分方程的符号求解等符号计算;(3) 利用Matlab的二维、三维绘图功能,实现图形用户界面(GUI)中的部分符号计算的可视化,即给出符号计算实例的同时实现该实例的图形化描述。

如下图给出了一个简单的GUI界面,学生可以参考如下图设计出自己的GUI界面。

程序如下:hf=figure('Position',[200,200,700,500],...'Name','信计08(2)班阿卜杜热黑木20080803417', ...'NumberTitle','off','MenuBar','none');uicontrol(hf,'Style','Frame','Position',[0,0.15,0.45,1],...'Units','normalized','Back',[0,1,1]);COMM1=['n=str2num(get(he1,''String''));', ...%求导连接'b=sym(get(he7,''String''));',...'dec=diff(b,n);', ...'set(he8,''string'',char(dec));'];COMM2=['a=str2num(get(he2,''String''));', ...%求极限连接'f=sym(get(he7,''String''));',...'lim=limit(f,a);', ...'set(he8,''string'',char(lim));'];COMM3=['g=sym(get(he7,''String''));',... %不定积分连接'int_1=int(g);', ...'set(he8,''string'',char(int_1));'];COMM4=['a=str2num(get(he3,''String''));', ... %级数求和连接'b=str2num(get(he5,''String''));', ...'f=sym(get(he7,''String''));',...'sum_1=symsum(f,a,b);', ...'set(he8,''string'',char(sum_1));'];COMM5=['a=str2num(get(he4,''String''));', ... %定积分连接'b=str2num(get(he6,''String''));', ...'f=sym(get(he7,''String''));',...'int_2=int(f,a,b);', ...'set(he8,''string'',char(int_2));'];COMM6=['f=get(he7,''String'');',...'dsolve_1=dsolve(f,''x'');', ...'set(he8,''string'',char(dsolve_1));'];COMM7=['f=get(he7,''String'');',...'ezplot(f);'];COMM8=['g=get(he8,''String'');',...'ezplot(g);'];uicontrol(hf,'Style','Push','Position',[0.02,0.9,0.11,0.06],...'String','求导','Units','normalized','Call',COMM1); uicontrol(hf,'Style','Text','Position',[0.17,0.85,0.08,0.1],...'Units','normalized','Horizontal','center',...'String','阶数','Back',[0,1,1]);he1=uicontrol(hf,'Style','Edit','Position',[0.25,0.9,0.15,0.06],...'Units','normalized','Back',[0,1,0]);uicontrol(hf,'Style','Push','Position',[0.02,0.72,0.13,0.06],...'String','求极限','Units','normalized','Call',COMM2);uicontrol(hf,'Style','Text','Position',[0.17,0.67,0.08,0.1],...'Units','normalized','Horizontal','center',...'String','极限点','Back',[0,1,1]);he2=uicontrol(hf,'Style','Edit','Position',[0.25,0.72,0.15,0.06],...'Units','normalized','Back',[0,1,0]);uicontrol(hf,'Style','Push','Position',[0.02,0.58,0.13,0.06],...'String','不定积分','Units','normalized','Call',COMM3);uicontrol(hf,'Style','Push','Position',[0.02,0.45,0.13,0.06],...'String','级数求和','Units','normalized','Call',COMM4);uicontrol(hf,'Style','Text','Position',[0.31,0.44,0.06,0.06],...'Units','normalized','Horizontal','center',...'String','上限','Back',[0,1,1]);he5=uicontrol(hf,'Style','Edit','Position',[0.38,0.45,0.06,0.06],...'Units','normalized','Back',[0,1,0]);uicontrol(hf,'Style','Text','Position',[0.17,0.44,0.06,0.06],...'Units','normalized','Horizontal','center',...'String','下限','Back',[0,1,1]);he3=uicontrol(hf,'Style','Edit','Position',[0.24,0.45,0.06,0.06],...'Units','normalized','Back',[0,1,0]);uicontrol(hf,'Style','Push','Position',[0.02,0.32,0.13,0.06],...'String','求定积分','Units','normalized','Call',COMM5);uicontrol(hf,'Style','Text','Position',[0.31,0.31,0.06,0.06],...'Units','normalized','Horizontal','center',...'String','上限','Back',[0,1,1]);he6=uicontrol(hf,'Style','Edit','Position',[0.38,0.32,0.06,0.06],...'Units','normalized','Back',[0,1,0]);uicontrol(hf,'Style','Text','Position',[0.17,0.3,0.08,0.06],...'Units','normalized','Horizontal','center',...'String','下限','Back',[0,1,1]);he4=uicontrol(hf,'Style','Edit','Position',[0.24,0.32,0.06,0.06],...'Units','normalized','Back',[0,1,0]);uicontrol(hf,'Style','Push','Position',[0.02,0.2,0.16,0.06],...'String','解微分方程','Units','normalized','Call',COMM6);uicontrol(hf,'Style','text','Position',[0.48,0.9,0.13,0.06],...'String','原函数','Units','normalized');he7=uicontrol(hf,'Style','edit','Position',[0.65,0.9,0.30,0.06],...'String','','Units','normalized','Back',[0,1,0]);uicontrol(hf,'Style','text','Position',[0.48,0.77,0.13,0.06],...'String','结果函数','Units','normalized');he8=uicontrol(hf,'Style','text','Position',[0.65,0.77,0.30,0.06],...'String','','Units','normalized','Back',[0,1,0]);h_axes=axes('position',[0.55,0.2,0.4,0.5]);uicontrol(hf,'Style','push','Position',[0.58,0.02,0.13,0.06],...'String','初始绘图','Units','normalized','call',COMM7);uicontrol(hf,'Style','push','Position',[0.80,0.02,0.13,0.06],...'String','结果绘图','Units','normalized','call',COMM8);uicontrol(hf,'Style','Push','Position',[0.02,0.02,0.08,0.06],...'String','退出','Units','normalized','Call', 'close');。

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

MATLAB实用教程GUI

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

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

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

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

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

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

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

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

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

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

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

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

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

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

matlab用户图形界面设计GUI

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,主要用于修饰用户界面,使用户界面 更友好,也可用边框在图形窗口中圈出一块区域,将 某些控件对象组织在这块区域中。

matlab2011教程之九—图形用户界面(GUI)

matlab2011教程之九—图形用户界面(GUI)

第 9 章 图形用户界面GUI 图形用户界面(Graphical User Interfaces ,GUI)是由窗、轴、按键、菜单、工具图标、文字说明等对象(Objects)构成的一个用户界面。

用户通过鼠标或键盘选择、激活这些图形对象,实现计算、绘制图表和产生动画等。

图形用户界面不仅形象生动、界面友善、操控灵活,而且为人们提供了定性定量结合、局域全域结合、时域频域结合、模拟数字结合的数据探索、科学分析的仿真平台。

图形用户界面的出现,使过往视为经典的一些方法和技巧逐趋暗淡失色,而新的方法和技巧则日渐彩华升腾,人们的研发理念和思维方式已经和正在发生深刻的变化。

本书作者正是出于这种认识组织本章内容的。

图形用户界面开发工具(Graphical User Interface Development Environment,GUIDE),简称界面开发工具,是一种程式性的设计工具。

使用GUIDE设计界面遵循一定的设计步骤,而较少依赖技巧。

MATLAB 新版本倡导使用GUIDE开发图形用户界面。

为此,本章以四个节次五个算例介绍了GUIDE的功能和用法、界面控件的机理和属性、各种控件、菜单、图标的详细制作步骤。

与此同时,本章还有少量篇幅用以介绍“图形用户界面的手工设计法”。

编写这部分内容的目的在于:一,其本身简明;二,它能帮助读者更好地理解用户界面的工作机理。

本章所有算例界面都是彩色的,请读者从随书光盘mbook目录上的“ch09_图形用户界面.doc”文件中查看;而实现界面所需的带exm前缀文件名的M文件和FIG文件则都存放在随书光盘mfile目录上。

9.1设计原则和一般步骤9.1.1设计原则9.1.2一般制作步骤9.2借助GUIDE创建GUI9.2.1GUIDE通览1 GUIDE的启动图9.2-1 显示模板预览的GUIDE Quick Start对话窗 2 Preferences 设置对版面编辑器的影响图9.2-2 带空白模板的GUIDE3 GUIDE的功能分区(1)版面设计区(2)工具条和菜单条4待设计用户界面的性状预设图9.2-3 未来界面窗性状设置对话窗(1)未来界面窗的缩放性(2)未来界面窗的访问权限(3)涉及界面窗的其他设置5设计区的坐标参照和位置编排器(1)版面设计区的坐标参照系图9.2-4 “格尺”对话框(默认状态)图9.2-5 设计辅助工具和功能(2)组件位置编排器图9.2-6 编排器对三个组件进行对中处理 6控件组件属性值的初始设置(1)控件或组件属性值初始设置的必要性(2)在GUIDE中设置控件或组件属性值的方式(3)对象属性观察器的引出(4)属性观察器简介(图9.2-7)图9.2-7 属性观察器示例7创建界面的文件保存和再命名(1)对应GUIDE创建界面的两个伴生文件(2)GUIDE所创建界面的保存操作图9.2-8 激活保存操作提示对话框(3)GUIDE自动生成文件的再命名9.2.2控件的运作机理及创建用于构建用户界面的组件(Components)中,有一类可专称为控件(Controls)。

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

Matlab的图形用户界面GUI

编辑ppt
20
图7-10 调整空间位置后的界面设计编辑器外观图
编辑ppt
21
➢设置控件属性
图7-10 共有三个按钮,且每个按钮行使相应的功能,在按钮上双击鼠标左键 可以打开按钮属性编辑器,如图7-11所示,该图的左侧是按钮的所有属性,右 侧是其属性值。
图7-11 按钮属性编辑器外观图
编辑ppt
22
:按钮组(Button Group),放到按钮组中的多个单选按钮具有 排它性,但与按钮组外的单选按钮无关。制作界面时常常会遇到有几组 参数具有排它性的情况,即每一组中只能选择一种情况。此时,可以用
几组按钮组表示这几组参数,每一组单选按钮放到一个按钮组控件中。
编辑ppt
12
图7-3 带有控件的图形界面编辑器外观图
编辑ppt
6
:开关按钮(Toggle Button) 和一般按钮形状相 同,区别在于它有两种状态,用鼠标单击按钮,它会从一 种状态变成另一种状态,并执行相应的回调程序(两种状 态各对应不同的回调程序)。
按钮“开”时,Value属性的值为在Max属性中指定的值; 按钮“关”时,Value属性的值为在Min属性中指定的值。
编辑ppt
2
整个GUI的实现过程可以分为以下几步: ➢使用界面设计编辑器进行GUI界面布局设计; ➢理解应用程序M文件中所使用的编程技术; ➢编写GUI组件行为响应控制(即回调函数)代码。 一、启动GUIDE
在Matlab中,GUIDE提供了多种设计模板以方便用户使 用GUI。这些模板均包含相关的回调函数,用户可以打开它 所对应的M文件,看到它们的工作方式,或修改相应的函数,
编辑ppt
18
六、对象浏览器
利用对象浏览器,可查看当前所创建的图形对象。从对象设计编辑器界面的工 具栏上选择,或者选择“View”菜单下的“Object Browser”选项,可以打开 对象浏览器。

Matlab图形用户界面(GUI)制作

Matlab图形用户界面(GUI)制作

2016/1/14
L.D. WANG College of Information & Electrical Engineering
Shenyang Agricultural University
MATLAB在工程中的应用
第九章 图形用户界面(GUI)制作
GUI对象层次结构
根 计 算 机 屏 幕 图 图 子 Uimenu Uicontrol uimenu 座 标 轴 型 式 : 按 钮 键 无 线 按 钮 键u i m e n u 检 查 框 滑 标 弹 出 式 菜 单 框 架 文 本 编 辑
第九章 图形用户界面(GUI)制作
(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,']);

matlab第九讲

matlab第九讲

Parent、UserData、Visible等公共属性外,还有一些常用 的特殊属性。 1.基本控制属性 (1)Style属性。 (2)Tag属性。 (3)String属性。 (4)Type属性。 (5)BackgroundColor、ForegroundColor属性。 (6)Position属性。 (7)Units属性。 (8)字体属性。包括: FontAngle属性。
第九章 图形用户 界面设计
目 录
9.1用户界面对象 9.2图形用户界面设计工具 9.3GUI编程
本章学习目标 掌握GUI开发环境(GUIDE)的使用方法。 掌握各种控件的属性和创建方法。 掌握菜单设计的方法。 掌握回调函数的使用方法。
9.1用户界面对象
在MATLAB中,每个图形用户界面都是由若干个不同的用户 界面(UI)对象组成的。用户界面也是有层次的,其层次结 构如图所示。
9.2.3菜单编辑器 利用菜单编辑器可以创建、设置、修改下拉式菜单和快捷菜 单。从GUI设计窗口的工具栏上选择”Menu Editor”命令按 钮 ,或者选择“Tool”菜单中的“Menu Editor”命令,即 可 打开菜单编辑器。 1.创建菜单 菜单编辑器左上角的第1个按钮用于创建一级菜单项。用户 可以通过单击它,来创建一级菜单。第二个按钮用于创建一 级菜单的子菜单,在选中已经创建的一级菜单后,可以单击 该按钮来创建选中的一级菜单项的子菜单。 菜单编辑器有两个选项卡,选择MenuBar选项卡,可以创 建下拉式菜单。选择Context Menus选项卡,可以创建快 捷菜单。
1.事件驱动机制 面向对象的程序设计是以对象感知事件的过程为编程单位, 这种程序设计的方法称为事件驱动机制。 2.回调函数 回调函数就是处理该事件的程序,它定义对象怎样处理信息 并响应某事件,该函数不会主动运行,是由主控程序调用的。 gcbo为正在执行回调的对象句柄,可以使用它来查询该对象 的属性。例如: get(gcbo,’Value’) MATLAB将Tag属性作为每一个控件的唯一标识符。GUIDE 在生成M文件时,将Tag属性作为前缀,放在回调函数关键 字Callback前,通过下画线连接而成函数名。例如:

matlab gui面板的用法

matlab gui面板的用法

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语言及应用-09 图形用户界面设计(GUI)

MATLAB语言及应用-09 图形用户界面设计(GUI)
菜单也可以通 过编程实现,方法 为从GUI设计窗口 的工具栏上选择 Menu Editor命令 按钮,打开菜单编 辑程序。
菜单编辑器包括菜单的设计和编辑,菜单编辑器有八
个快捷键,可以利用它们任意添加或删除菜单,可以设置 菜单项的属性,包括名称(Label)、标识(Tag)、选择是否显 示分隔线(Separator above this item)、是否在菜单前加上选 中标记(Item is checked)、调用函数(Callback)。
第9章 图形用户界面设计(GUI)
图形用户界面简介 9.1 图形用户界面开发环境(GUIDE) 9.2 控件对象及属性 9.3 编写 GUI 代码 9.4 程序菜单设计 9.5 程序对话框设计 9.6 程序设计实例
用户界面是用户与计算机进行信息交流的方式。 计算机在屏幕显示图形、文本、声音等。用户通过 输入设备(如:键盘、鼠标、跟踪球、绘制板或麦 克风),与计算机通讯。用户界面设定了如何观看 和如何感知计算机、操作系统或应用程序。通常, 多是根据悦目的结构和用户界面功能的有效性来选 择计算机或程序。
几何排列工具(Alignment Tool)——调整各对象相互之间 的几何关系和位置;
属性查看器(Property Inspector)——查询并设置属性值;
对象浏览器(Object Browser)——用于获得当前Matlab图 形用户界面程序中的全部对象信息,对象的类型,同时显 示控件的名称和标识,在控件上双击鼠标可以打开该控件 的属性编辑器;
① 将控件对象放置到布局区
用鼠标选择并放置控件到布局区内; 移动控件到适当的位置; 改变控件的大小; 可同时选中多个对象。
一 个 简 单 的 布 局 示 例
② 激活图形窗口
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

武汉理工大学数学系 尹强
CreateFcn = DeleteFcn = BusyAction = queue HandleVisibility = on HitTest = on Interruptible = on Parent = [0] Selected = off SelectionHighlight = on Tag = Type = figure UIContextMenu = [] UserData = [] Visible = on
获得当前所有对象句柄
H=Findobj Findobj(‘Property’,PropertyValue)
武汉理工大学数学系 尹强
位置(position)和单位(units) Units:inches;centimeters
武汉理工大学数学系 尹强
根对象的位置属性: 根对象的位置属性: Position 由ScreenSize代替 代替 [left,bottom] [1,1] [width,height] 屏幕实际尺寸 例:get(0,'screensize') ans = 1 1 800 600
武汉理工大学数学系 尹强
控制框类型
1. 2. 3. 4. 5. 6. 7. 8.
按纽框:执行一个动作( 按纽框:执行一个动作(如open, close) 无线按纽:设置参数的开关( 无线按纽:设置参数的开关(0 或1) ) 检查框: 检查框:切换按纽 静态文本框:显示标示﹑用户信息及当前值 静态文本框:显示标示﹑ 可编辑文本框: 可编辑文本框:容许用户输入文本或特定值 滑标(滚动条) 滑标(滚动条):用于选取某一范围内的值 弹出式菜单: 弹出式菜单:向用户提供一些可选的清单 框架:带色彩的矩形区域, 框架:带色彩的矩形区域,提供视觉的分隔性
武汉理工大学数学系 尹强
创建用户GUI的Matlab工具 创建用户GUI的Matlab工具 GUI
Guide函数的使用 各类对象的含义与定义方式 创建GUI的一个示例
武汉理工大学数学系 尹强
详细情况请见 MATLAB GUI 演示
武汉理工大学数学系 尹强
。 。。 。 。。
无无按按 按按
检检检
滑滑
文文检
。。。。。。
武汉理工大学数学系 尹强
建立用户菜单和子菜单
hm1=uimenu(h_parent,’property’,propertyvalue)
最重要的属性
Label: 其属性值为菜单和下拉菜单的文本字 符串 Callback:其属性值为Matlab字符串,当选中菜 单项时,传给eval函数,并执行
武汉理工大学数学系 尹强
图形句柄函数
武汉理工大学数学系 尹强
创建图形用户界面(GUI) 创建图形用户界面
Graphics User Interface
武汉理工大学数学系 尹强
GUI的层次结构
层次结构
根对象 (计算机屏幕)
图 图 。。。。。。
Uimenu对对
Uicontrol对 对
坐 滑 坐对 对
武汉理工大学数学系 尹强
建立用户控制框
hm1=uicontrol(h_parent,’style’,’stylevalue’,’prop erty’,propertyvalue)
最重要的属性
Style: 其属性值为控制框类型 Callback:其属性值为Matlab字符串,当选中 该项时,传给eval函数,并执行相应的命令

武汉理工大学数学系 尹强
InvertHardcopy = on KeyPressFcn = MenuBar = figure MinColormap = [64] Name = NextPlot = add NumberTitle = on PaperUnits = inches
PaperOrientation = portrait PaperPosition = [0.25 2.5 8 6] PaperPositionMode = manual PaperSize = [8.5 11] PaperType = usletter Pointer = arrow PointerShapeCData = [ (16 by 16) double array] PointerShapeHotSpot = [1 1]
数学实验九 MATLAB图形用户界面( GUI)
句柄图形操作 图形用户界面(GUI)
武汉理工大学数学系 尹强
句柄图形操作
武汉理工大学数学系 尹强
基本概念
句柄图形(对底层图形例程集合的总 称,并生成图形) 对象(一组紧密相关,形成统一整体 的数据结构和函数的集合) 句柄(每一个对象的唯一数据标识)
对象属性包括:属性名和属性值 如:Hd=figure(‘color’,’white’)
武汉理工大学数学系 尹强
H=figure Get(H)
BackingStore = on CloseRequestFcn = closereq Color = [0.8 0.8 0.8] Colormap = [ (64 by 3) double array] CurrentAxes = [] CurrentCharacter = CurrentObject = [] CurrentPoint = [0 0] Dithermap = [ (64 by 3) double array] DithermapMode = manual FixedColors = [ (3 by 3) double array] IntegerHandle = on
武汉理工大学数学系 尹强
h=plot(x,y,x,z)
返回句柄h(1)和h(2)
Set(h(1),’color’,[1 0.3 0.5],’linewidth’,3)
Set(h(2),’color’,[1 0.5 0.5],’linewidth’,4)
武汉理工大学数学系 尹强
获得当前对象句柄(最常用对象)
武汉理工大学数学系 尹强
Position = [64 36 672 504] Renderer = painters RendererMode = auto Resize = on ResizeFcn = SelectionType = normal ShareColors = on Units = pixels WindowButtonDownFcn = WindowButtonMotionFcn = WindowButtonUpFcn = WindowStyle = normal ButtonDownFcn = Children = [] Clipping = on
武汉理工大学数学系 尹强
句柄图形对象
层次结构
根对象 (计算机屏幕)
图形框架窗口对象 图形框架窗口对象 。。。。。。
Uimenu对 对
Uicontrol对 对
坐滑坐对对
。。。。。。
影对对对
无线对对
文文对对
曲曲对对
。。。。。。
武汉理工大学数学系 尹强
对象的属性:每一个对象都具有与特定对象 相应的特性,不同的对象的属性可由函数 Get获得,Set进行设置
H1=gcf; get current figure(gcf for short) H2=gca; get current axis (gca) H3=gco; get current object (gco) Get(H1,’type’) Get(H2,’type’) Get(0)……根对象属性
武汉理工大学数学系 尹强
武汉理工大学数学系 尹强
如: H_box=uicontrol(gcf,’style’,’check’,… ‘position’,[100 50 100 20],… ‘string’,’Axis Box’,… ‘callback’,[‘if get(H_box,’value’)==1’,… ‘set(gca,’box’,’on’)’,… else… ‘set(gca,’box’,’off’)’,… end])
武汉理工大学数学系 尹强
菜单的组织结构
H1
1
H1_2
如:
H1_21
H1_22
H1=uimenu(gcf,’label’,’example’) H1_1=uimenu(H1,’label’,’grid’,’callback’,’grid’) H1_2=uimenu(H1,’label’,’view’ ) H1_21=uimenu(H1_2,’label’,’2-D’,’callback’,’view(2)’) H1_22=uimenu(H1_2,’label’,’3-D’,’callback’,’view(3)’)
相关文档
最新文档