Matlab GUI图形界面设计
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6.2.4 按钮、滚动条和文本框控件
1.控件的通用属性 (1)Tag属性 图形对象的标识,是所有图形对象
最重要的属性,对象的回调函数名自动以Tag属性 命名 (2)String属性 界面中的标签文字 (3)Style属性 控件的类型 (4)Visible属性 可见on/不可见off (6)Enable属性 有效on/无效off/不活动inactive (5)Fontsize属性
>> x=0:0.1:10; >> y=sin(x); %创建无标题窗口 >> h_f=figure('Position',[200 300 300 300],'menubar','none'); >> h_a1=axes('position',[0.1,0.1,.8,.8]); >> h_t=title(h_a1,'正弦曲线'); %创建标题 >> h_l=line(x,y);%建立曲线对象 >> set(gca,‘xtick’,[0 pi/2 pi 3*pi/2 2*pi 5*pi/2 3*pi]) %设置x坐标轴刻度 %设置坐标轴刻度标注 >> set(gca,'xticklabel',{'0','pi/2','pi','3*pi/2','2pi','5*pi/2','3pi'}) >> set(gca,'xgrid','on','ygrid','on'); %设置坐标轴属性 >> set(h_l,'linewidth',2) %设置线属性 >> set(get(h_t,'parent'),'color','y') %设置标题的父对象属性 %创建矩形框 >> h_ann0=annotation(gcf,'rectangle',[0.1 0.5 .8 0.4],... 'FaceAlpha',.7,'FaceColor','red');
wenku.baidu.com
3.滚动条(Slider)
用来输入一定范围内的数值 (1)常用属性
常用属性有value、max、min和SliderStep。
(2)回调函数 滚动条的常用回调函数是callback,当每次单击滚动条改变当前
值时调用该函数。 4.静态文本框(Static Text)和文本框(Edit Text) 静态文本框用来显示文本,不能接收用户输入,用于文字说明; 文本框可以显示文本,还可以接收用户输入 静态文本框和文本框的常用属性都有string和字体属性。 静态文本框没有callback回调函数,一般不接收用户操作;而文 本框有callback回调函数,当修改了文本框内容后可以调用。
(2) 回调函数的自动命名 GUIDE根据控件的Tag属性确定了回调函数的名称 (3) 回调函数的输入参数 回调函数的输入参数也是由GUIDE自动确定的,常用的有hObject、 eventdata和 handles。 function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (当前回调函数的图形对象句柄) % eventdata reserved - to be defined in a future version of MATLAB (预 留输入参数) % handles structure with handles and user data (存放图形窗口中所有图形 对象句柄的结构体,存储了界面中所有控件菜单等的句柄,可以在函数之间 传递数据) 例: 在pushbutton1_callback 回调函数中获取axes1的属性: P=get(handles.axes1,’position’) ; %获取axes1的位置属性
3.GUI开发环境的常用工具
(1) 控件面板 按钮’pushbutton’ 其上的字符说明其作用 静态文本’static text’ 一般用来作为信息提示用 文本框’edit text’ 读取用户数据的文字窗口 面板‘panel’ 概括一组控件,也可以修饰用 列表框‘listbox’ 包含多个选项供用户选择 滚动条’slider’ 图示某个范围 切换按钮’toggle button’ 两状态按钮,单击改变其状态。 单选按钮’radiobutton’ 一组选项,其中只能有一个被选中。 复选框’check box’ 一组选项,可以选择多项。 下拉菜单’popupmenu’ 选中时打开一个列表
Uimenu 菜单 图像
Uipanel 面板
Uitoolbar 工具栏
6.1.2 句柄图形对象的操作
1. 创建句柄图形对象
h_obj=funname('PropertyName',PropertyValue,……)
h_obj是图形对象的句柄; funname是函数名,每个创建的图形对象函数名与对象名
CloseRequestFcn-关闭窗口时响应函数
KeyPressFcn-键盘按下时响应函数
windowButtonDownFcn-鼠标按下时响应函数 WindowButtonMotionFcn-鼠标移动时响应函数 CreateFcn和DeleteFcn-建立和删除对象时响应
函数 CallBack-对象被选中时响应函数
补充where_mathsworks.m
4. 句柄图形对象的复制和删除
(1)句柄图形对象的复制
new_handle = copyobj(h_obj,p) %复制图形对象h_obj (2)删除句柄图形对象 delete(h_obj) %删除图形对象 (3)删除所有的句柄对象 clf(h_figure) %删除h_figure窗口中的所有可见对象 cla(h_axes) %删除h_axes坐标轴中的所有可见对象
第6章 MATLAB高级图形设计
6.1 句柄图形对象 6.2 图形用户界面(GUI) 6.3 对话框 6.4 图像和声音 6.5 视频与动画设计
6.1.1 句柄图形对象体系 句柄(Handle)是每个图形对象唯一的标识,不同对象的句柄不能重 复,通过句柄可以对图形对象的属性进行操作。
Root根屏幕
相同; 'PropertyName'是属性名,属性名是字符串; PropertyValue是属性值。 例: >> h_f=figure('Position',[200 300 500 400])%创建图形窗 >> h_a1=axes('position',[0.1,0.05,.85,.85]) %创建坐标轴 例6-1: Ex6_1.m
2.GUI程序文件 (1).fig文件 保存GUI界面 (2).m文件 保存GUI程序代码 m文件结构 : 主函数:注释说明和窗口的初始化程序 function varargout = simplegui(varargin) 子函数 OpeningFcn 打开窗口时的初始化程序 OutputFcn函数是窗口的输出子函数,定义输出到命 令窗口的变量 其他的子函数是各控件的回调函数
3. 句柄图形对象属性的获取和设置 a=get(h_obj,'PropertyName') %获取图形对 象的属性值 a=set(h_obj,'PropertyName',PropertyValue,
...)%设置图形对象的属性值
练习
例6-2 使用句柄图形对象绘制正弦曲线(ex6_2.m)。
2. 访问句柄图形对象
(1)获取当前图形对象的句柄 gcf %获取当前图形窗口的句柄 gca %获取当前窗口当前坐标轴的句柄 gco %获取当前窗口当前对象的句柄 说明:返回值都是句柄,gco的当前对象句柄
是指被鼠标最近点击过的对象。 (2)查找对象句柄 h=findobj(h_obj,'PropertyName', PropertyValue) %查找符合指定属性值的对象句柄
(2)对象对齐工具
(3) 对象浏览器
(4) Tab顺序编辑器
(5) 属性编辑器窗口
(6) 菜单编辑器
(7) M文件编辑器
6.2.3 回调函数和GUI程序文件
1.回调函数
控件接收到用户的操作时调用的特定函数。
一旦某一对象指定的事件发生,将自动调用 某指定的函数,它可以是matlab文件,也可 以是一组matlab程序。 (1) 回调函数的类型 每种控件根据控件功能的不同回调函数类型 也不同。
6.1 句柄图形对象
Figure图形
Axes轴
UI Objects用户接口对象
Core Objects 核心对象
Plot Objects 绘图对象
Group Objects 组对象
Annotation Objects 注释对象 图像
Uibuttongroup 按钮组
Uicontrol 控件对象
Uicontextmenu 上下文菜单
2.按钮(Push Button)和切换按钮(Toggle Button) 按钮主要用于响应鼠标的单击事件 切换按钮两次鼠标单击响应不同状态 按钮和切换按钮的常用属性都有Tag、string和value: value为1表示被单击,为0则未被单击; 按钮默认的Tag属性为pushbutton1,切换按钮为 togglebutton1。当用户单击按钮或切换按钮调用callback 回调函数; string属性是按钮上显示的文字,默认的string属性与Tag相 同。
补充实例(my_callbackf.m): 建立一个图形窗口。该图形窗口没有菜单条,标题名称为“我的图形 窗口”,起始于屏幕左下角、宽度和高度分别为450像素点和260像素 点,背景颜色为绿色,且当用户从键盘按下任意一个键时,将在该图 形窗口绘制出正弦曲线,点击鼠标时绘制余弦曲线。
hf=figure('Color',[0,1,0],'Position',[1,1,450,260],... 'Name','我的图形窗口','NumberTitle','on','MenuBar','none',... 'KeyPressFcn','plot(sin(0:0.01:2*pi))','WindowButtonDownFcn','plot(cos(0 :0.1:2*pi),''r*'')');
6.2 图形用户界面(GUI)
MATLAB的图形用户界面提供了包含按钮、文本框、
标签等一系列交互控件,用户可以通过鼠标和键盘 进行交互操作。
运行 控 件 面板 对象浏览器 属性编辑器 M文件编辑器 Tab顺序编辑器 菜单编辑器 对象对齐工具
界面设 计区
6.2.1 图形用户界面概述
在MATLAB主界面选择菜单
2. 一个简单的图形用户界面设计实例
例6-3 创建一个用户界面,实现单击按钮在坐标
轴中绘制正弦曲线的功能,运行界面如图6-6所示 (simplegui.m/simplegui.fig) 。 (1)创建一个空白的GUI界面 (2)创建控件 (3)调整控件布局 (4)设置各控件的Tab顺序 (5)设置控件的属性 (6)编写回调函数 (7)运行GUI界面程序
“File”→“New”→“GUI”,或直接在命令窗口 输入“Guide”命令都可以打开GUIDE快速开 始界面 。
6.2.2 设计一个简单的GUI界面
1. 设计一个GUI界面的步骤 (1)界面布局设计 界面布局设计包括以下几个步骤: 通过拖拽控件面板中的控件到界面设计区中; 然后使用对象对齐工具(Align Objects)进行控件的布局 调整,使用Tab顺序编辑器(Tab Order Editor)对各控件 的Tab顺序进行较好地设置; 如果界面需要菜单,则使用菜单编辑器(Menu Editor)进 行菜单的设计; 添加完控件后在对象浏览器(Object Browser)中就可以 看到所有的图形对象,完成界面的布局设计。 (2)属性设置 打开属性编辑器(Property Inspector)对相关的属性进行 修改 。 (3)编写回调函数