第08章_MATLAB图形用户界面设计_例题源程序

合集下载

在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-操作讲义-图形用户界面设计

%字体大小
FontUnits normaliszed 位,缩放时保持字体比例
%采用相对度量单
HorizontalAlignment Center
%文字中心对齐
String
Grid on %在按键上显示Grid on
Tag
GridOn_push
%生成
handles.GridOn_push域存放该键句柄
6
7.1.2 一般制作步骤
界面制作包括界面设计和程序实现。 分析界面所要实现的主要功能,明确设
计任务; 绘界面草图,注意从使用者的角度来考
虑界面布局; 按构思的草图,上机制作静态界面; 编写界面动态功能程序。
7
7.2 图形用户界面设计
7.2.1 可视化的界面环境
MATLAB6.5版本提供的GUI设计工具较前面的版本 有较大的改善,设计界面变化很大。打开GUI设计 工具的方法有以下几种:
14
填写菜单名,如果在前面加“&”符号则加快捷键,当运
7.2.2 创建用户菜单 行时第一个字母会加下划线,以便用户快速激活菜单项
新 建 菜 单
新建子菜单1在.菜GU单菜单左右移I设、编计辑菜单上、下移工作删除菜单台分的隔菜符 单条选择“Tool”
标记
-”Menu Editor…”或单击工具栏“Menu
Tag
figuer1
%生成handles.figure1域存放图形窗句柄
29
7.3 图形用户界面设计工具应用(续)
在轴属性编辑框中,设置如下属性值:
Units normalized 缩放时保持比例
%采用相对度量单位,
Box off
%坐标轴不封闭
Tag
axes1

Matlab程序用户界面设计

Matlab程序用户界面设计
形的‘Unites’属性是五个可允许的字符串,其中‘pixels’ 是缺省 值。
如果指定一个没有固定值的属性,那么,MATLAB就会通知如下: » set(Hf_1,'Position') A figure's 'Position'property does not have a fixed set of property values 除了set命令,句柄图形对象创建函数(例如figure,axis,line等)接受 多个属性名和属性值对。例如: » figure('Color','blue’,'NumberTitle','off','Name','My Figure') %创建一个图形窗口,背景为兰色,标有'My Figure’而不是缺省标题 'Figure No.1'
宽为2点,线数get还能提供帮助。
例如: » set(handle, ‘PropertyName’) % 返回一个可赋给由handle所描
述对象的属性值列表。 » set(Hf_1,'Units') [inches|centimeters|normalized|points|{pixels}] %由Hf_1所引用图
» set(Hl_a,‘color’,‘r’)
%将具有句柄
Hl_a的对象的颜色设置成红色
一般情况下,函数set可以有任意数目的
(‘PropertyName’,PropertyValue)对。
例如:
»set(Hl_a,‘Color’,‘r’,‘Linewidth’,2,‘LinStyl
e’,‘--’ ) %将具有句柄Hl_a的线条变成红色,线

matlab用户界面设计

matlab用户界面设计
医学技术与工程学院
Uicontrol 对象属性
ButtonDownFcn 当uicontrol被选择时,MATLAB回调串传给函 数eval。初始值为空矩阵
Interrruptible
指定ButtonDownFcn和CallBack串是否可中断
{on}: 回调不能由其它回调中断
off:
回调串可被中断
医学技术与工程学院
医学技术与工程学院
创建控件对象
Hc_1=uicontrol(Hf_fig, ' PName ' ,PValue,...)
❖ 按钮
Hc_1=uicontrol(Hf_fig, ‘style’ ,’pushbutton’ )
❖ 单选按钮
Hc_1=uicontrol(Hf_fig, ‘style’ ,’radiobutton’ ) 当选择时,Value为1;未选择,Value为0。
医学技术与工程学院
一、图形用户界面开发环境
GUIDE是Graphical User Interfaces Design Environment
的简称,这是一个GUI设对计的快速开发环境,特别适 用于快速产生各种图形,并随心所欲地改变它们(外形、 大小及颜色等)。
GUIDE的主要工具有:
布局编辑器(Layout Editor) 几何排列工具(Alignment Tool) 属性编辑器(Property Inspector) 对象浏览器(Object Browser) 菜单编辑器(Menu Editor)
医学技术与工程学院
1、布局编辑器
布局编辑器用于从控件选择板上选择控件对象并 放置到布局区内,布局区被激活后就成为图形用 户界面。 启动布局编辑器的方法:

Matlab的图形用户界面GUI

Matlab的图形用户界面GUI

图7-20 生成“hot”效果的图形界面
% 建立控制坐标轴的显示菜单【Axis】 h3=uimenu(h0,'label','Axis'); h31=uimenu(h3,'label','Axis on','callback','axis on'); h32=uimenu(h3,'label','Axis off','callback','axis off'); 该段代码运行后,生成如图7-21所示的界面图。
% 建立关闭图形用户界面按钮【close】 hbutton=uicontrol('position',[80 10 70 35],'fontsize',8, … 'fontweight','bold','string','close','callback','close');
(a)
(b)
图7-22 带有上下文菜单的图形界面
图7-17 M文件编辑器中的三个按钮的回调子函数
(a)
(b)
(c)
(d)
图7-18 运行结果
(a) 被激活后的界面; (b) sphere图; (c) peaks图; (d) membrane图
第三节 GUI程序设计
1. 用户界面菜单对象的建立 h=uimenu(’ PropertyName1’,value1, ’ propertyName2’,value2,…)
图723生成sinc图形的gui界面第八章图像视频和声音第八章图像视频和声音第一节图像第二节影片第三节图像和影片的相互转换第四节声音第一节图像三图像的读取和显示第六章图形处理功能第八章图像视频和声音第二章数组的运算基础一图像格式由该函数获取的信息依赖于文件类型的不同而不同filename文件名filemdedate文件最后一次修改的时间第六章图形处理功能第八章图像视频和声音第二章数组的运算基础第六章图形处理功能第八章图像视频和声音filesize文件的大小单位
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第8章MATLAB图形用户界面设计例8.1建立图8.1所示的图形演示系统菜单。

菜单条中含有3个菜单项:Plot、Option 和Quit。

Plot中有Sine Wave和Cosine Wave两个子菜单项,分别控制在本图形窗口画出正弦和余弦曲线。

Option菜单项的内容如图8.1所示,其中Grid on和Grid off控制给坐标轴加网格线,Box on和Box off控制给坐标轴加边框,而且这4项只有在画有曲线时才是可选的。

Window Color控制图形窗口背景颜色。

Quit控制是否退出系统。

screen=get(0,'ScreenSize');W=screen(3);H=screen(4);figure('Color',[1,1,1],'Position',[0.2*H,0.2*H,0.5*W,0.3*H],...'Name','图形演示系统','NumberTitle','off','MenuBar','none');%定义Plot菜单项hplot=uimenu(gcf,'Label','&Plot');uimenu(hplot,'Label','Sine Wave','Call',...['t=-pi:pi/20:pi;','plot(t,sin(t));',...'set(hgon,''Enable'',''on'');',...'set(hgoff,''Enable'',''on'');',...'set(hbon,''Enable'',''on'');',...'set(hboff,''Enable'',''on'');']);uimenu(hplot,'Label','Cosine Wave','Call',...['t=-pi:pi/20:pi;','plot(t,cos(t));',...'set(hgon,''Enable'',''on'');',...'set(hgoff,''Enable'',''on'');',...'set(hbon,''Enable'',''on'');',...'set(hboff,''Enable'',''on'');']);%定义Option菜单项hoption=uimenu(gcf,'Label','&Option');hgon=uimenu(hoption,'Label','&Grid on',...'Call','grid on','Enable','off');hgoff=uimenu(hoption,'Label','&Grid off',...'Call','grid off','Enable','off');hbon=uimenu(hoption,'Label','&Box on',...'separator','on','Call','box on','Enable','off');hboff=uimenu(hoption,'Label','&Box off',...'Call','box off','Enable','off');hwincor=uimenu(hoption,'Label','&Window Color','Separator','on');uimenu(hwincor,'Label','&Red','Accelerator','r',...'Call','set(gcf,''Color'',''r'');');uimenu(hwincor,'Label','&Blue','Accelerator','b',...'Call','set(gcf,''Color'',''b'');');uimenu(hwincor,'Label','&Yellow','Call',...'set(gcf,''Color'',''y'');');uimenu(hwincor,'Label','&White','Call',...'set(gcf,''Color'',''w'');');%定义Quit菜单项uimenu(gcf,'Label','&Quit','Call','close(gcf)');例8.2绘制曲线y=2e-0.5x sin(2πx),并建立一个与之相联系的快捷菜单,用以控制曲线的线型和曲线宽度。

x=0:pi/100:2*pi;y=2*exp(-0.5*x).*sin(2*pi*x);hl=plot(x,y);hc=uicontextmenu; %建立快捷菜单hls=uimenu(hc,'Label','线型'); %建立菜单项hlw=uimenu(hc,'Label','线宽');uimenu(hls,'Label','虚线','Call','set(hl,''LineStyle'','':'');');uimenu(hls,'Label','实线','Call','set(hl,''LineStyle'',''-'');');uimenu(hlw,'Label','加宽','Call','set(hl,''LineWidth'',2);');uimenu(hlw,'Label','变细','Call','set(hl,''LineWidth'',0.5);');set(hl,'UIContextMenu',hc); %将该快捷菜单和曲线对象联系起来例8.3建立如图8.10所示的数制转换对话框。

在左边输入一个十进制整数和2~16之间的数,单击“转换”按钮能在右边得到十进制数所对应的2~16进制字符串,单击“退出”按钮退出对话框。

hf=figure('Color',[0,1,1],'Position',[100,200,400,200],...'Name','数制转换','NumberTitle','off','MenuBar','none');uicontrol(hf,'Style','Text', 'Units','normalized',...'Position',[0.05,0.8,0.45,0.1],'Horizontal','center',...'String','输入框','Back',[0,1,1]);uicontrol(hf,'Style','Text','Units','normalized',...'Position',[0.5,0.8,0.45,0.1],'Horizontal','center',...'String','输出框','Back',[0,1,1]);uicontrol(hf,'Style','Frame','Units','normalized',...'Position',[0.04,0.33,0.45,0.45],'Back',[1,1,0]);uicontrol(hf,'Style','Text','Units','normalized',...'Position',[0.05,0.6,0.25,0.1],'Horizontal','center',...'String','十进制数','Back',[1,1,0]);uicontrol(hf,'Style','Text','Units','normalized',...'Position',[0.05,0.4,0.25,0.1],'Horizontal','center',...'String','2~16进制','Back',[1,1,0]);he1=uicontrol(hf,'Style','Edit','Units','normalized',...'Position',[0.25,0.6,0.2,0.1],'Back',[0,1,0]);he2=uicontrol(hf,'Style','Edit','Units','normalized',...'Position',[0.25,0.4,0.2,0.1],'Back',[0,1,0]);uicontrol(hf,'Style','Frame','Units','normalized',...'Position',[0.52,0.33,0.45,0.45],'Back',[1,1,0]);ht=uicontrol(hf,'Style','Text','Units','normalized',...'Position',[0.6,0.5,0.3,0.1],'Horizontal','center',...'Back',[0,1,0]);COMM=['n=str2num(get(he1,''String''));',...'b=str2num(get(he2,''String''));',...'dec=trdec(n,b);','set(ht,''string'',dec);'];uicontrol(hf,'Style','Push','Units','normalized',...'Position',[0.18,0.1,0.2,0.12],'String','转换','Call',COMM);uicontrol(hf,'Style','Push', 'Units','normalized',...'Position',[0.65,0.1,0.2,0.12],...'String','退出', 'Call','close(hf)');程序调用了trdec.m函数文件,该函数的作用是将任意十进制整数转换为2~16进制字符串。

相关文档
最新文档