第五章 MATLAB里的GUI
- 格式:ppt
- 大小:1.10 MB
- 文档页数:89


实验四 MATLAB GUI设计
一.预备知识点
1. 图形用户界面(GUI)是用户与计算机程序之间的交互方式,是用户与计算机进行信息交流的方式。
计算机在屏幕显示图形和文本,若有扬声器还可产生 声音。用户通过输入设备,如:键盘、鼠标、跟踪球、绘制板或麦克风,与计算机通讯。用户界面设定了如何观看和如何感知计算机、操作系统或应用程序。通常, 多是根据悦目的结构和用户界面功能的有效性来选择计算机或程序。图形用户界面或GUI是包含图形对象,如:窗口、图标、菜单和文本的用户界面。以某种方式 选择或激活这些对象,通常引起动作或发生变化。最常见的激活方法是用鼠标或其它点击设备去控制屏幕上的鼠标指针的运动。按下鼠标按钮,标志着对象的选择或 其它动作。
2.对“句柄图形”的理解是设计和实现GUI的先决条件。
由图形命令生成的每一事物是一个图形对象。图形对象不仅包括uimenu和uicontrol对象,而且还包括图形、坐标轴和他们的子对象。让我们从另 一个角度来看这一层次结构。计算机的屏幕本身是根结点,图形是根对象的子对象,坐标轴,uimenu ,uicontrol是图形的子对象。根可以包括多个图形,每个图形含有一组或多组坐标轴以及其子对象,每个图形也可以有一个或多个与坐标轴无关的
uimenu和uicontrol。虽然uicontrol对象无子对象结点,但他们确实具有多种类型。uimenu对象常将其它的uimenu对象作为 其子对象。
3. MATLAB的图形用户界面设计实际上是一种面向对象的设计方法。
假设想建立一个图形界面来显示和处理二维图形的颜色、线型及数据点的图标。要求其基本功能是:
(1)建立一个主坐标系,用来显示要绘制的二维图形;
(2)建立一个列表框,允许用户选择不同的着色方法;
(3)建立一组按扭,用于处理二维图形线型和数据点的图标;
(4)为图形界面加入菜单项,用于决定坐标轴是否显示及坐标轴上是否需要网格; (A)最初图形界面的设想如下图所示: (B)根据上面的设想,下面我们就来制作它的图形用户界面:
Matlab的GUI参数传递⽅式总结
MATLAB GUI传递⽅式
1、全局变量;
2、作为函数的参数传递;
3、利⽤控件的userdata数据;
4、为handles结构体添加新字段;
5、setappdata函数为句柄添加数据;
6、跨空间计算evalin和赋值assignin;
7、将数据保存到⽂件,需要时读取;
8、带参数调⽤GUI的M⽂件;
9、嵌套函数(不适⽤于GUIDE中,只适⽤纯命令是的GUI)。
⼀. 全局变量
运⽤global定义全局变量传递参数,适⽤于gui内控件间以及不同gui间。这种⽅式恐怕是最简单的⽅式,是很省⼼!但是,简单的问题就在于有时你会很头疼!因为在每⼀个要到该全局变量的地⽅,你都要添⼀句gloal x,还有就是如果你在⼀个地⽅修改了 x的值,那么所有x的值就都变了!有的时候恐怕会出现紊乱。另⼀个更重要的问题在于,套⽤C++的⼀句话,全局变量破坏了程序的封装性!所以,全局变量是能少⽤尽量少⽤。
以下创造⼀个简单的GUI给⼤家说明⼀下,建⼀个GUI, 包含两个按钮,⼀个坐标系,⼀个⽤来画y=sin(x),⼀个⽤来画y=cos(x);eg:在GUI的OpeningFcn函数中写:
global x y1 y2
x=0:.1:2*pi;y1=sin(x);y2=cos(x);
在pushbutton1_Callback函数中写Global x y1
Plot(x,y1)
在pushbutton1_Callback函数中写Global x y2
Plot(x,y2)
全局变量是⽐较⽅便的,但全局变量会破坏封闭性,如果不是有⼤量数据要传递,建议不要使⽤。
⼆. 运⽤gui本⾝的varain{}、varaout{}传递参数
这种⽅式仅适⽤于gui间传递数据,且只适合与主⼦结构,及从主gui调⽤⼦gui,然后关掉⼦gui,⽽不适合递进结构,即⼀步⼀步实现的⽅式。
输⼊参数传递(主要在⼦gui中设置):
⽐如⼦GUI的名称为subGUI, 设想的参数输⼊输出为:[out1, out2] = subGUI(in1, in2)
matlab创建gui界面的方法
在MATLAB中创建GUI界面可以使用MATLAB的GUI设计工具。下面是一些基本步骤:
1. 在MATLAB命令窗口中输入`guide`,然后按Enter键打开GUI设计器。
2. 在GUI设计器中,选择一个预定义的模板或创建一个新的GUI。
3. 使用GUI设计器中的工具栏和属性编辑器来添加和配置GUI组件,例如按钮、文本框和滑动条等。
4. 设置每个组件的回调函数,以便在用户与组件交互时执行特定的操作。
5. 保存并运行GUI,以测试其功能和性能。
需要注意的是,GUI设计器是MATLAB的一个可选组件,因此需要确保已安装该组件才能使用它。此外,创建复杂的GUI可能需要一定的MATLAB编程经验和对GUI组件的深入了解。
.
.
课题三 MATLAB的GUI程序设计
图形用户界面(GUI)则是由窗口、光标、按键、菜单、文字说明等对象构成的一个用户界面。用户通过一定的方法(如鼠标或键盘)选择、激活这些图形对象,使计算机产生某种动作或变化,比如实现计算、绘图等。
Matlab中设计图形用户界面的方法有两种:使用可视化的界面环境和通过编写程序。
我要做的主要通过使用可视化的界面环境来实现GUI界面的设计
1.首先我们新建一个GUI文件:File/New/GUI 如下图所示
选择Blank GUI(Default)
2.在界面上安装8个编辑文本框、4个静态文本框与2个push putton,如图所示: .
.
3.可以双击每个模块并设置其属性值,修改font size的大小为12,push button1中的string修改为“+”,push button1中的string修改为“=”,并且设置8个编辑文本框、4个静态文本框的string为空,设置4个静态文本框的颜色为红色,设置完之后如图
4.保存至桌面,文件名为c2,保存之后跳到m文件编辑界面,如图: .
.
5.添加程序。
在function pushbutton2_Callback(hObject, eventdata, handles)下编写如下程序:
s1=str2double(get(handles.edit1,'String')); %把edit1里面的字符赋给s1