第11章 MATLAB图形用户界面设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
控件对象例子 控件对象例子
1 双位按钮、无线电按键、控件区域框例子 双位按钮、无线电按键、
%exm104_1.m clf reset set(gcf,'menubar','none') set(gcf,'unit','normalized','position',[0.2,0.2,0.64,0.32]); set(gcf,'defaultuicontrolunits','normalized') %设置用户缺省控件单位属性值 设置用户缺省控件单位属性值 h_axes=axes('position',[0.05,0.2,0.6,0.6]); t=0:pi/50:2*pi;y=sin(t);plot(t,y); set(h_axes,'xlim',[0,2*pi]); set(gcf,'defaultuicontrolhorizontal','left'); htitle=title('正弦曲线 正弦曲线'); 正弦曲线 set(gcf,'defaultuicontrolfontsize',12); %设置用户缺省控件字体属性值 设置用户缺省控件字体属性值
自制的用户菜单
%exm103_2.m figure h_menu=uimenu(gcf,'Label','&Color'); %带简捷键 的用户菜单 带简捷键C的用户菜单 带简捷键 的用户菜单Color h_submenu1=uimenu(h_menu,'Label','&Blue',... %带简捷键 的的下拉菜单Blue %带简捷键B的的下拉菜单Blue 带简捷键B的的下拉菜单 'Callback','set(gcf,''color'',''blue'')'); h_submenu2=uimenu(h_menu,'label','Red',... %制作另一个下拉菜单 制作另一个下拉菜单Red 制作另一个下拉菜单 'Callback','set(gcf,''color'',''red'')',... 'Accelerator','r'); %为Red菜单设置快捷键 菜单设置快捷键R 为 菜单设置快捷键
11.2 对话框设计
11.2.1 对话框的控件 在对话框上有各种各样的控件, 在对话框上有各种各样的控件,利用这些控件可以实现有 关控制。下面先介绍这些控件。 关控制。下面先介绍这些控件。 (1) 按钮 按钮(Push Button)。 。 (2) 双位按钮(Toggle Button)。 双位按钮 。 (3) 单选按钮 单选按钮(Radio Button)。 。 (4) 复选框 复选框(Check Box)。 。 (5) 列表框 列表框(List Box)。 。 (6) 弹出框 弹出框(Popup Menu)。 。 (7) 编辑框(Edit Box)。 编辑框 。 (8) 滑动条 滑动条(Slider)。 。 (9) 静态文本 静态文本(Static Text)。 。 (10) 边框 边框(Frame)。 。
通过顶层菜单Test形成的带分格的封闭坐标轴 图1 通过顶层菜单 形成的带分格的封闭坐标轴
11.1.3 快捷菜单 快捷菜单是用鼠标右键单击某对象时在屏幕上弹出的菜单。 快捷菜单是用鼠标右键单击某对象时在屏幕上弹出的菜单。 这种菜单出现的位置是不固定的, 这种菜单出现的位置是不固定的,而且总是和某个图形对 象相联系。 象相联系。在MATLAB中,可以使用 中 可以使用uicontextmenu函数 函数 和图形对象的UIContextMenu属性来建立快捷菜单,具体 属性来建立快捷菜单, 和图形对象的 属性来建立快捷菜单 步骤为: 步骤为: (1) 利用 利用uicontextmenu函数建立快捷菜单。 函数建立快捷菜单。 函数建立快捷菜单 (2) 利用 利用uimenu函数为快捷菜单建立菜单项。 函数为快捷菜单建立菜单项。 函数为快捷菜单建立菜单项 (3) 利用 函数将该快捷菜单和某图形对象联系起来。 利用set函数将该快捷菜单和某图形对象联系起来 函数将该快捷菜单和某图形对象联系起来。
11.1.2 菜单对象常用属性 菜单对象具有Children、Parent、Tag、 菜单对象具有 、 、 、 Type、UserData、Visible等公共属性,除 等公共属性, 、 、 等公共属性 公共属性外,还有一些常用的特殊属性。 公共属性外,还有一些常用的特殊属性。
图形窗的标准菜单
包括:文件 包括:文件File、编辑 、编辑Edit、视图 、视图View、插 、 入Insert、工具 、工具Tools、窗口 、窗口Windows和帮 和帮 七个菜单。 助Help七个菜单。 七个菜单 每个都有下拉菜单Pull-down menu。 每个都有下拉菜单 。 标准菜单受界面菜单‘ 属性管理, 标准菜单受界面菜单‘MenuBar’属性管理, 属性管理 该属性值为[none|{figure}]。 该属性值为 。 Figure是缺省设置,改为 是缺省设置, 是缺省设置 改为none时不显示这些 时不显示这些 菜单
11.2.2 对话框的设计 1.建立控件对象 . MATLAB提供了用于建立控件对象的函数 提供了用于建立控件对象的函数uicontrol, 提供了用于建立控件对象的函数 , 其调用格式为: 其调用格式为: 对象句柄=uicontrol(图形窗口句柄,属性名1,属性值1, 对象句柄 图形窗口句柄,属性名 ,属性值 , 图形窗口句柄 属性名2,属性值2, 属性名 ,属性值 ,…) 其中各个属性名及可取的值和前面介绍的uimenu函数相 其中各个属性名及可取的值和前面介绍的 函数相 但也不尽相同,下面将介绍一些常用的属性。 似,但也不尽相同,下面将介绍一些常用的属性。
第11章 MATLAB图形用户界 章 图形用户界 面设计
11.0 11.1 11.2 11.3
概念 菜单设计 对话框设计 图形用户界面设计工具
11.0 概念
图形用户界面 (Graphical User Interface,GUI) 是由窗口、光标、按键、菜单、文字说明等对 是由窗口、光标、按键、菜单、 构成的与计算机进行交互的部件。 象(Objects)构成的与计算机进行交互的部件。 构成的与计算机进行交互的部件 在进行技术、方法的演示、 在进行技术、方法的演示、反复使用软件时需 制作用户界面。 制作用户界面。
用户菜单的属性
例:在图形窗上自制一个名为【Test】的 在图形窗上自制一个名为【 】 顶层菜单项” “顶层菜单项”;当用鼠标点动该菜单项 将产生一个带分格的封闭坐标轴。 时,将产生一个带分格的封闭坐标轴。通 过本例说明: 过本例说明: (A)回调属性的运作机理; )回调属性的运作机理; (B)用户顶层菜单项的制作 ) 属性的设置方法; (C)uimenu属性的设置方法; ) 属性的设置方法 (D)复杂字符串的构成方法和注意事项。 )复杂字符串的构成方法和注意事项。
设计原则及一般步骤
设计原则
– 简单性(simplicity) 简单性( – 一致性 一致性(consistency) – 习常性 习常性(familiarity)
一般步骤
– 明确设计任务 – 绘出界面草图 – 上机制作 – 编写界面动态功能的程序
11.1 菜单设计
11.1.1 建立用户菜单 要建立用户菜单可用uimenu函数,因其调用方法不同, 函数, 要建立用户菜单可用 函数 因其调用方法不同, 该函数可以用于建立一级菜单项和子菜单项。 该函数可以用于建立一级菜单项和子菜单项。 建立一级菜单项的函数调用格式为: 建立一级菜单项的函数调用格式为: 一级菜单项句柄=uimenu(图形窗口句柄,属性名 ,属 图形窗口句柄, 一级菜单项句柄 图形窗口句柄 属性名1, 性值1,属性名2,属性值2, 性值 ,属性名 ,属性值 ,…) 建立子菜单项的函数调用格式为: 建立子菜单项的函数调用格式为: 子菜单项句柄=uimenu(一级菜单项句柄,属性名 ,属 一级菜单项句柄, 子菜单项句柄 一级菜单项句柄 属性名1, 性值1,属性名2,属性值2,…) 性值 ,属性名 ,属性值 ,
uicontrol('style','frame',...%创建用户控件区 创建用户控件区 'position',[0.67,0.55,0.25,0.25]); uicontrol(‘style’,‘text’,... %创建静态文本框 创建静态文本框 'string','正斜体图名 正斜体图名:',... 正斜体图名 'position',[0.68,0.77,0.18,0.1],... 'horizontal','left'); hr1=uicontrol(gcf,‘style’,‘radio’,... %创建“无线电”选择按 创建“ 创建 无线电” 键 'string','正体 正体',... %按键功能的文字标识 正体 按键功能的文字标识'正体 正体 按键功能的文字标识 正体' 'position',[0.7,0.69,0.15,0.08]); %按键位置 按键位置 set(hr1,‘value’,get(hr1,‘Max’)); %因图名缺省使用正体,所以小圆圈应被点黑 因图名缺省使用正体, 因图名缺省使用正体 set(hr1,'callback',[... 'set(hr1,''value'',get(hr1,''max'')),',...%选中将小圆圈点黑 选中将小圆圈点黑 'set(hr2,''value'',get(hr2,''min'')),',...%将"互斥 选项点白 互斥"选项点白 将 互斥 'set(htitle,''fontangle'',''normal''),',... %使图名字体正体显示 使图名字体正体显示 ]);
如何隐藏和显示标准菜单
创建图形窗 H_fig=Figure 隐去标准菜单使用命令: 隐去标准菜单使用命令: set(H_fig,’MenuBar’,’none’); set(gcf,’menubar’,menubar); 恢复标准菜单使用命令: 恢复标准菜单使用命令: set(gcf,’menubar’,’figure’);
2.控件对象的属性 . MATLAB的10种控件对象使用相同的属性类型,但是 种控件对象使用相同的属性类型, 的 种控件对象使用相同的属性类型 这些属性对于不同类型的控件对象,其含义不尽相同。 这些属性对于不同类型的控件对象,其含义不尽相同。除 Children、Parent、Tag、Type、UserData、Visible等公 、 、 、 、 、 等公 共属性外,还有一些常用的特殊属性。 共属性外,还有一些常用的特殊属性。
例 绘制一条曲线
y=sin(t)/t ,创建一个与之相联系的
现场菜单, 现场菜单,用以控制曲线的颜色 %exm103_4.m t=(-3*pi:pi/50:3*pi)+eps; 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现场菜单与 曲线相联系 现场菜单与Sa曲线相联系 使 现场菜单与
Biblioteka Baidu
界面的uimenu的书写格式一: 的书写格式一: (1)产生图 界面的 )产生图1界面的 的书写格式一 uimenu('Label','Test','Callback','grid on,set(gca,''box'',''on''),') 界面的uimenu的书写格式二: 的书写格式二: (2)产生图 界面的 )产生图1界面的 的书写格式二 uimenu('Label','Test', ... 'Callback',['grid on,' , ... 'set(gca,''box'',''on'');']) 界面的uimenu的书写格式三: 的书写格式三: (3)产生图 界面的 )产生图1界面的 的书写格式三 Lpv='Test'; Cpv=['grid on,','set(gca,''box'',''on''),']; uimenu('Label', Lpv, 'Callback' , Cpv) 界面的uimenu的书写格式四: 的书写格式四: (4)产生图 界面的 )产生图1界面的 的书写格式四 PS.Label='Test'; PS.Callback=['grid on;','set(gca,''box'',''on'');']; uimenu(PS)