MATLAB 之 可视化图形用户界面设计
时间:2024-04-01 12:30:51 来源:网络cs 作者:纳雷武 栏目:运营工具 阅读:
这里写目录标题
一、可视化图形用户界面设计1. 图形用户界面设计窗口1.1 图形用户界面设计模板1.2 图形用户界面设计窗口 2. 可视化图形用户界面设计工具1.1 对象属性检查器2.2 菜单编辑器2.3 工具栏编辑器2.4 对齐对象工具2.5 对象浏览器2.6 Tab 键顺序编辑器 3. 可视化图形用户界面设计实例
一、可视化图形用户界面设计
MATLAB 提供了图形用户界面开发环境(Graphical User Interface Development Environment,GUIDE),在这种开发环境下,用户界面设计变得方便、直观,实现了 “所见即所得” 的可视化设计。1. 图形用户界面设计窗口
1.1 图形用户界面设计模板
在 MATLAB 命令行窗口输入guide
命令,或在 MATLAB 主窗口中选择 “主页” 选项卡,单击 “文件” 命令组中的 “新建” 命令按钮,再选择 “应用程序” ⟶ \longrightarrow ⟶GUIDE命令,弹出 “GUIDE快速入门” 窗口,具体如下图所示。 1.2 图形用户界面设计窗口
在图形用户界面设计模板中选中一个模板,然后单击 “确定” 按钮,就会打开图形用户界面设计窗口。选择不同的图形用户界面设计模式,在图形用户界面设计窗口中显示的结果是不一样的。下图所示为选择 Blank GUI 设计模板后显示的图形用户界面设计窗口。2. 可视化图形用户界面设计工具
MATLAB 常用的图形用户界面设计工具有对象属性检查器、菜单编辑器、工具栏编辑器、对齐对象工具、对象浏览器和 Tab 键顺序编辑器。1.1 对象属性检查器
利用对象属性检查器,可以检查每个对象的属性值,也可以修改、设置对象的属性值。通过双击某个对象,或选中对象后,从图形用户界面设计窗口工具栏上单击 “属性检查器” 命令按钮,或选择 "视图” ⟶ \longrightarrow ⟶“属性检查器” 命令,打开 “对象属性检查器” 窗口,如下图所示。2.2 菜单编辑器
利用菜单编辑器,可以创建、设置、修改下拉式菜单和快捷菜单。从图形用户界面设计窗口的工具栏上单击 "菜单编辑器” 命令按钮,或选择 “工具” ⟶ \longrightarrow ⟶"菜单编辑器” 命令,即可打开 “菜单编辑器” 窗口,如下图所示。2.3 工具栏编辑器
利用工具栏编辑器可以创建、设置、修改工具栏。从图形用户界面设计窗口的工具栏上单击 “工具栏编辑器” 命令按钮,或选择 “工具” ⟶ \longrightarrow ⟶“工具栏编辑器” 命令,即可打开 “工具栏编辑器” 窗口,如下图所示。2.4 对齐对象工具
利用对齐对象工具,可以对图形用户界面对象设计区内的多个对象的位置进行调整。在选中多个对象后,在图形用户界面设计窗口的工具栏上单击 “对齐对象” 命令按钮串,或选择 “工具” ⟶ \longrightarrow ⟶“对齐对象”命令,打开 “对齐对象 ”窗口,具体如下图所示。2.5 对象浏览器
利用对象浏览器,可以查看当前设计阶段的各个句柄图形对象。从图形用户界面设计窗口的工具栏上单击 “对象浏览器” 命令按钮台,或选择 “视图” ⟶ \longrightarrow ⟶“对象浏览器” 命令,打开 “对象浏览器” 窗口,具体如下图所示。2.6 Tab 键顺序编辑器
利用 Tab 键顺序编辑器,可以设置用户按键盘上的 Tab 键时,对象被选中的先后顺序。从图形用户界面设计窗口的工具栏上单击 “Tab 键顺序编辑器” 按钮,或选择 “工具” ⟶ \longrightarrow ⟶“Tab 键顺序编辑器”命令,即可打开 “Tab 键顺序编辑器”窗口。例如,若在图形用户界面设计窗口中创建了 3 个对象,与它们相对应的 Tab 键顺序编辑器如示。3. 可视化图形用户界面设计实例
利用上面介绍的图形用户界面设计工具,可以设计出界面友好、操作简便、功能强大的图形用户界面,然后通过编写对象的事件响应过程,就可以完成相应的任务。下面通过实例说明这些工具的具体使用方法。例如,我们利用图形用户界面设计工具设计如下图所示的用户界面。该界面包括一个用于显示图形的轴对象,显示的图形包括表面图、网格图和等高线图。绘制图形的功能通过 3 个命令按钮来实现,用户通过单击相应的按钮,即可绘制相应图形。绘制图形所需要的数据通过一个列表框来选取。在列表框中包括 3 个选项,分别对应 MATLAB 的数据函数 Peaks、Membrane 和用户自定义的绘图数据 Sinc,用户可以通过选择相应的选项来载入相应的绘图数据。get(gcbo,'Value')%获取回调对象的状态
MATLAB 将 Tag 属性作为每一个控件的唯一标识。图形用户界面开发环境在生成 M 文件时,将 Tag 属性作为前缀,放在回调函数关键字 Callback 前,通过下画线连接而成为函数名。例如: function pushbutton1_Callback(hObject,eventdata,handles)
其中,hObject 为发生事件的源控件,eventdata 为事件数据,handles 保存图形界面中所有对象的句柄。handles 保存了图形窗口中所有对象的句柄,可以使用 handles 获取或设置某个对象的属性。例如,单击图形窗口中的按钮 Button1 时,设置图形窗口中对象 Text1 上的文字为 “Welcome",则在 function Button1_Callback(hObject, eventdata, handles)
的函数体中加入以下语句: set(handles.text1,'String','Welcome') ;
图形用户界面开发环境使用 guidata
函数生成和维护 handles,可以根据需要添加字段,将数据保存到 handles 的指定字段中,使得数据与图形句柄关联起来,从而实现回调间的数据共享。① 为打开图形窗口事件编写响应代码。选择 MATLAB 编辑器的 “编辑器” 选项卡,在 “导航" 命令组中单击 “转至” 命令按钮,在弹出的菜单中选择 guidemo. _OpeningFcn
函数,在以 %varargin
开头的注解语句下输入以下代码: handles.peaks=peaks(35);handles.membrane=membrane;[x,y]=meshgrid(-8:0.3:8);r=sqrt(x.^2+y.^2);sinc=sin(r)./(r+eps);handles.sinc=sinc;handles.current_data=handles.sinc;surf(handles.current_data)
② 为列表框编写响应代码。选择 ChooseFun_ Callback
函数,在以 %handles
开头的注解语句下输入以下代码: str=get(hobject,'String');val=get(hobject,'Value');%设置用所选函数产生当前数据集switch str{val}case 'Peaks'handles.current_data=handles.peaks; case 'Membrane'handles.current_data=handles.membrane;case 'Sinc'handles.current_data=handles.sinc;end%保存句柄结构guidata(hobject,handles)
③ 为 Mesh 按钮编写响应代码。选择 Mesh _Callback
函数,在该区添加以下代码: mesh(handles.current_data)
④ 为 Surf 按钮编写响应代码。选择 Surf_Callback
函数,在该区添加以下代码: surf(handles.current_data)
⑤ 为 Contour3 按钮编写响应代码。选择 Contour3_Callback
函数,在该区添加以下代码: contour3(handles.current_data)
可以看出,每个控件对象都有一个由 function 语句引导的函数,用户可以在相应的函数体中添加程序代码来完成指定的任务。在运行图形用户界面文件时,如果单击其中的某个对象,则在 MATLAB 机制下自动调用该函数。⑥ 运行图形用户界面。保存程序代码后,在图形界面设计器中选择 “工具” ⟶ \longrightarrow ⟶“运行” 命令,或单击工具栏上的 “运行图形” 命令按钮口,即可得到想要的图形用户界面。图形界面存盘后,也可以在命令行窗口直接输入文件名来运行。例如,可以输入 guidemo 来运行上面保存过的界面。例如,我们在上述例子的图形窗口中添加图形窗口的默认菜单和一个自定义菜单项 “设置”。“设置" 菜单项的内容如下图所示,其中 “网格线” 子菜单项控制给坐标轴加网格线,“边框” 子菜单项控制给坐标轴加边框,“背景色” 子菜单项控制图形窗口的背景颜色。 hgon_Callback
函数,在以 %handles
开头的注解语句下输入以下代码: if strcmp (get (gcbo, 'Checked'), 'on')set (gcbo, 'Checked', 'off');grid off;elseset (gcbo, 'Checked', 'on') ;grid on;end
② 为 “边框” 菜单项编写响应代码。选择 hbon_Callback
函数,在该区添加以下代码: if strcmp (get (gcbo, 'Checked'), 'on')set (gcbo, 'Checked', 'off') ;box off;elseset (gcbo, 'Checked' , 'on') ;box on;end
③ 为 3 个颜色菜单项编写响应代码。选择 hwcYellow_Callback
函数,在该区添加以下代码: set(gcbf,'Color','y');set(gcbo,'Checked','on');set(handles.hwcBlue,'Checked','off');set(handles.hwcWhite,'Checked','off');
选择 hwcBlue_ Callback
函数,在该区添加以下代码: set(gcbf,'Color','b');set(gcbo,'Checked','on');set(handles. hwcYellow,'Checked','off');set(handles. hwcWhite,'Checked','off');
选择 hwcWhite_ Callback
函数,在该区添加以下代码: set(gcbf,'Color','w');set(gcbo,'Checked','on');set(handles.hwcYellow,'Checked','off');set(handles.hwcBlue,'Checked','off');
(5) 存盘并运行图形用户界面。 本文链接:https://www.kjpai.cn/news/2024-04-01/151985.html,文章来源:网络cs,作者:纳雷武,版权归作者所有,如需转载请注明来源和作者,否则将追究法律责任!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。