第7章 图形用户 界面(GUI)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
V=get(句柄名,属性名) V是返回的属性值
gcf gca gco
获取当前图形窗口的句柄 获取当前坐标轴的句柄
获取最近被选中的图形对象句柄
(3) 隐藏和显示标准菜单
创建图形窗口
h=figure(属性名1,属性值1,属性名2,属性值2,…)
隐去标准菜单使用命令: set(h,'MenuBar','none'); set(gcf,'menubar','none'); 恢复标准菜单使用命令: set(gcf,'menubar','figure')
4. 程序编写GUI步骤
第一步骤: 建figure窗口对象,设置其属性;
第二步骤: 建axes或uicontrol、unicontextmenu对
象,设置其属性及callback回调函数
2017/1/3
5. 创建图形主界面(窗口)
(1) 图形窗口的标准菜单:
① 文件File,编辑Edit,视图View,插入Insert,工具Tools,窗
例
在曲线上点击鼠标右键,弹出现场菜单
7.2.3 用户界面控件的设计(uicontrol)
1.界面控件特点
窗口标题是否以Figure n:为前缀; n窗口序号(即句柄值); 属性取值是on(缺省值)或off;
例
例
建立图形窗口,起始于屏幕左下角、宽度和高度分别为300像素点和 150
像素点,背景颜色为绿色,且当用户从键盘按下任意一个键时,将显示 “Hello, Keyboard Key Pressed.”字样。
2017/1/3
例
运行程序:
clear hf=figure('Color',[0,1,1],'Name','菜单设计示例一',... 'NumberTitle','off','MenuBar','none'); hfile=uimenu(hf,'label','&File'); hhelp=uimenu(hf,'label','&Help'); uimenu(hfile,'label','&New','call','disp(''New Item'')'); uimenu(hfile,'label','&Open','call','disp(''Open Item'')'); hsave=uimenu(hfile,'label','&Save','Enable','off'); uimenu(hsave,'label','Text file','call','k1=0;k2=1;file01;'); uimenu(hsave,'label','Graphics file','call','k1=1;k2=0;file10;'); uimenu(hfile,'label','Save &As','call','disp(''Save As Item'')'); uimenu(hfile,'label','&Exit','separator','on','call','close(hf)'); uimenu(hhelp,'label','About ...','call',... ['disp(''Help Item'');','set(hsave,''Enable'',''on'')']);
4. 创建菜单项快捷键accelerator key
依赖用户菜单uimenu的accelerator属性,其值 可取任何字母
快捷键提示方式:
被设置快捷键那菜单名后将出现Ctri+Y
快捷键操作方式:
当相应菜单项不可见时,快捷键操作才起作用
2017/1/3
例
Color菜单项及下拉的Blue\Red菜单各带快捷键。
hi=figure
h_menu=uimenu(hi,'Label','Color'); %带用户菜单Color <2>
h_submenu1=uimenu(h_menu,'Label','Blue',... %带下拉菜单Blue <3> 'Callback','set(gcf,''color'',''blue'')', 'Accelerator','b'); h_submenu2=uimenu(h_menu,'label','Red',... %制作另一个下拉菜单Red 'Callback','set(gcf,''color'',''red'')',... 'Accelerator','r'); %为Red菜单设置快捷键R <7>
② 使用GUIDE设计工具: 用可视化GUIDE形成相应文件。
图形用户界面开发环境 GUIDE (Graphical User Interface Development Environment)
7.2
编程设计GUI
7.2.1 图形用户界面对象和句柄
7.2.2 界面菜单的设计(uimenu)
7.2.3 用户界面控件的设计(uicontrol)
2017/1/3
set(h,'MenuBar','none');
set(gcf,'menubar','figure')
7.2.2 界面菜单的设计(uimenu)
1. 建立用户菜单uimenu ① 一级菜单项的函数:
一级菜单项句柄=uimenu(图形窗口句柄,属性名1, 属性值1,属性名2,属性值2,…)
口Windows和帮助Help七个菜单。
② 每个都有下拉菜单(Pull-down menu);
③ 可用uimenu函数默认原窗口菜单后添加新菜单项。
(2)建立图形窗口:窗口句柄h hf=figure(属性名1,属性值1,属性名2,属性值2,…) (3)常用属性 控制窗口是否具有菜单条; 属性值为none,则窗口没有菜单条; MenuBar: 取值是figure(缺省值),为标准菜单。 图形窗口标题,缺省为空; Name: 标题形式:字符串。 NumberTitle:
7.1 GUI概述
1. 图形用户界面(GUI)
窗口、菜单、图标、对话框、光标、按键和文本 等各图形对象组成; 通过鼠标或键盘选择激活图形对象,使计算机完
成某种动作或变化,实现计算和绘图。
GUL让用户定制用户与Matlab交互方式;
2. Matlab图形用户界面设计的两种方法
① 编写程序: 直接编辑M文件产生GUI; edit funtool
用以控制曲线的颜色 t=(-3*pi:pi/50:3*pi); y=sin(t)./t; hline=plot(t,y);%绘制曲线 cm=uicontextmenu;%创建现场菜单 %制作具体菜单项,定义相应的回调 uimenu(cm,'label','Red','callback','set(hline,''color'',''r''),') uimenu(cm,'label','Blue','callback','set(hline,''color'',''b''),') uimenu(cm,'label','Green','callback','set(hline,''color'',''g''),') set(hline,'uicontextmenu',cm) %使cm现场菜单与曲线联系
Position[a,b,c,d]:在图中位置和大小 a:左下角定点的横坐标(或横向位置); b:左下角定点的纵坐标; c:总宽度; d:总高度;
6. 图形对象属性的设置和获取
(1)设置图形句柄属性函数set
set(图形句柄,属性名1,属性值1,属性名2,属性值2,…)
(2)获取图形句柄信息函数get
② 子菜单项的函数:
子菜单项句柄 =uimenu( 一级菜单项句柄,属性名 1 ,属性值1,属性名2,属性值2,…)
2017/1/3
2.自制的用户菜单
例
自制带下拉菜单表的用户菜单。该菜单能使图形窗背景颜色设 置为兰色或红色,产生带分格的封闭坐标轴。
figure %创建一个图形窗口 h_menu=uimenu(gcf,'label','Color'); %制作用户顶层菜单项Color <2> h_submenu1=uimenu(h_menu,'label','Blue',... %制作下拉菜单项Blue <3> 'callback','set(gcf,''Color'',''blue'')'); %<4> h_submenu2=uimenu(h_menu,'label','Red',... %制作下拉菜单Red <5> 'callback','set(gcf,''Color'',''red'')'); >> uimenu(gcf,'Label','Test','Callback','grid on,set(gca,''box'',''on''),')%可产生带分格的封闭坐标轴的test
7.2.1
图形用户界面对象和句柄
user interface (ui)
figure
1.图形对象
uimenu
uicontext menu
uitoolbar
uicontrol
uibuttongroup
2. 图形句柄handle
图形句柄:
创建图形对象,
为图形对象分配一个标识符。
① 通过图形句柄对图形对象进行操作; ② 是图形对象唯一标识符,不能重复混淆。
建立一个菜单系统
例
① 菜单条有File和Help两项。 ② File下拉菜单中New和Open选项,则将显示New Item和Open Item 字样。 ③ File中Save菜单项初始时禁选状态,在选择Help选项之后将此菜单 项恢复成可选状态; ④ 如果选择File 中的Save选项,则将出现一个新的菜单(三级菜单), 其中共有两个子菜单项Text file和Graphics file; ⑤ 如 果 选 择 第 1 项 , 则 将 变 量 k1 和 k2 分 别 赋 为 0 和 1 , 然 后 调 用 file01.m文件来进行相应的处理(该文件需要另行编写); ⑥ 如 果 选 择 第 2 项 , 则 将 变 量 k1 和 k2 分 别 赋 为 1 和 0 , 然 后 调 用 file10.m文件来进行相应的处理(该文件也需要另行编写)。 ⑦ 如果选择File中的Save As选项,则将显示Save As Item字样。 ⑧ 如果选择File中的Exit选项,则将关闭当前窗口。 ⑨ 如果选择 Help 中 About … 选项,则将显示 Help Item 字样,并将 Save• 菜单设置成可选状态。
5. 快捷菜单
(1) 快捷菜单:
① 用鼠标右键单击某对象时在屏幕上弹出的菜单; ② 这菜单出现位Leabharlann Baidu不固定,总和某图形对象相联系。
(2) 建立具体步骤:
① 用uicontextmenu建快捷菜单; ② 用uimenu为快捷菜单建菜单项; ③ 用set将该快捷菜单和某图形对象联系起来。
例
绘制
y=sin(t)/t曲线,创建与之相联系的现场菜单,
第七章 图形用户界面 (GUI)的设计
Graphical user interfaces
cftool
概率分布disttool
图形用户界面
Graphical user interfaces
funtool 函数计算器图形用户界面
taylortool
2017/1/3
命令窗口不是唯一与Matlab的交互方式。
2017/1/3
3.常见的图形句柄函数
1.figure:创建新图形窗口对象 2.set:设置图形对象各属性 3.get:获取图形对象各属性 4. uimenu:创建用户菜单 5.uicontextmenu:创建快捷菜单 6. uicontrol:创建用户控制图形对象 7.uibuttongroup:创建按钮组 8.uitoolbar;创建工具栏 9.uipushtool:创建工具栏按钮 10. axes:创建坐标轴图形对象 11. line:画线。 12. patch:填充多边形。 13. surface:绘制三维曲面。 14. image:显示图片对象
hf=figure('Color',[0,1,0],'Position', [1,1,300,150],'Name','图形窗口示例 ','NumberTitle','on','MenuBar','none', 'KeyPressFcn','disp(''Hello,Keyboard Key Pressed.'')');