图形用户界面设计方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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);