图形用户界面设计方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

专题八MATLAB图形用户界面设计

8.3 图形用户界面设计方法

☐图形用户界面的组成

☐控件对象及其操作

☐菜单对象及其操作

1.图形用户界面的组成

☐图形用户界面(Graphical User Interface,GUI):用户与计算机进行信息交流的窗口。

☐设计图形用户界面的方法

•调用建立用户界面控件的函数

•使用MATLAB提供的GUIDE工具进行可视化设计

2.控件对象及其操作

(1)常用控件

☐输入和输出类控件:编辑框、静态文本、列表框、滑动条等。

☐实施确认、选择操作类控件:按钮、双位按钮、单选按钮、复选框等。

2.控件对象及其操作

(2)建立控件对象

函数uicontrol用于建立控件对象,其调用格式为:

句柄变量=uicontrol(图形窗口句柄,属性1,属性值1,属性2,属性值2,…)其中,属性及其取值决定了控件的特征。若省略图形窗口句柄,默认在当前图形窗口建立控件对象。

2.控件对象及其操作

(3)控件对象的基本控制属性

☐Style属性:定义控件对象的类型,例如‘pushbutton’表示按钮对象,'edit'表示编辑框,等等。

☐String属性:定义控件对象的说明文字。

☐Tag属性:标识控件对象。

☐Enable属性:控制控件对象是否可用。

☐Position属性:定义控件对象的位置,其取值形式为[x,y,w,h]。☐Callback属性:其属性值是描述命令的字符串或函数句柄,当选中控件时,系统将自动执行字符串描述的命令或调用句柄所代表的函数,实施相关操作。

例1 在图形窗口中建立三个按钮对象,当单击按钮时分别绘制正弦曲线、显示或隐藏坐标轴的网格、清除坐标轴的图形。

ha= axes('Units','pixels','Position',[40,40,360,360]);

ptgrid=uicontrol('Style','pushbutton',...

'String','网格', 'Position', [450,120,48,20],...

'Callback','grid' );

btncla= uicontrol('Style', 'pushbutton', ...

'String', '清除','Position', [450,80,48,20],...

'Callback','cla' );

btnplot= uicontrol('Style', 'pushbutton', ...

'String','绘图','Position', [450,160,48,20]);

回调函数定义对象怎样处理信息并响应某事件。回调函数的定义格式:function 函数名(source, eventdata)

……

end

其中,参数source是发生事件的源控件对象句柄,eventdata存储事件数据。

例如,将例1的“绘图”按钮要实现的功能定义为回调函数plot_sin。function plot_sin(source, callbackdata)

t=-pi:pi/20:pi;

plot(t,sin(t));

end

ha= axes('Units','pixels','Position',[40,40,360,360]); ptgrid=uicontrol('Style','pushbutton',...

'String','网格', 'Position', [450,120,48,20],...

'Callback','grid' );

btncla= uicontrol('Style', 'pushbutton', ...

'String', '清除','Position', [450,80,48,20],...

'Callback','cla' );

btnplot= uicontrol('Style', 'pushbutton', ...

'String','绘图','Position', [450,160,48,20]);

%设置“绘图”按钮的Callback属性值是plot_sin函数句柄。btnplot.Callback=@plot_sin;

3.菜单对象

(1)建立菜单对象

uimenu函数用于创建、设置、修改菜单。

☐建立一级菜单项的函数调用格式为:

一级菜单项句柄=uimenu(图形窗口句柄,属性,属性值1,属性2,属性值2,…)☐建立子菜单项的函数调用格式为:

子菜单项句柄=uimenu(上级菜单项句柄,属性1,属性值1,属性2,属性值2,…)

3.菜单对象

(2)菜单属性

☐Label属性:定义菜单项的名字。

☐Accelerator属性:定义菜单项的快捷键。

☐Checked属性:指示菜单项是否已选中。

☐Enable属性:控制菜单项的可选择性。

☐Separator属性:在菜单项上方添加一条分隔线。

例2在例1的界面中添加“图形选项”菜单项,其中包括一个二级菜单项“线型”,其下又有3个子菜单项,分别为“实线”、“虚线”、“双划线”。

hopt=uimenu(gcf,'Label','图形选项','Accelerator','L'); hLStyle=uimenu(hopt,'Label','线型','Tag','LStyle',

'Enable','off');

hL_Solid=uimenu(hLStyle,'Label','实线',...

'Tag','Solid','Callback', @MLine_Type);

hL_Dotted=uimenu(hLStyle,'Label','虚线',...

'Tag','Dotted','Callback', @MLine_Type);

hL_Dashed=uimenu(hLStyle,'Label','双划线',...

'Tag','Dashed','Callback', @MLine_Type);

相关文档
最新文档