




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MATLAB GUI 设计简述 提纲 MATLAB GUI 设计基础 GUI设计的一些tips ADVISOR软件给我的营养 GUI 图形用户界面(GUI, Graphical User Interface )是指由窗 口、菜单、图标、光标、按键、对话框和文本等各种图形对 象组成的用户界面。它让用户定制用户与Matlab的交互方式 ,而命令窗口不是唯一与Matlab的交互方式。 MATLAB 提供了两种创建图形用户接口的方法:通过 GUI 向导(GUIDE)创建的方法和编程创建 GUI 的方法。 MATLAB的图形用户界面程序大多数是对话框应用程序,利 用MATLAB编写文档视图应用程序相对来说比较困难。 图形句柄入门 每一个图形元件视为一个对象Object Object都有一个独一无二的句柄Handle 图形句柄的具体层次 常用的图形句柄操作函数 在MATLAB中,只要获得了图形对象的句柄,就可以通过 对属性的操作来修改图形对象的外观,这也是MATLAB图 形用户界面编程的基本原理。 下面的语句中,findobj具有最大的通用性和实用性,适合 操作UI控件和图形对象。 句柄在一般绘图中的应用 在MATLAB命令行窗口中,键入下面的指令: X = linspace(-pi,pi,25); Y = sin(X); plot(X,Y,rX); 获取当前的曲线对象句柄: h_line = findobj(gca,Marker,X) h_line = 3.0011 重要语句,set与get h_line_parent = get(h_line,Parent); set(h_line,Color,1 1 1,MarkerSize,10); 无论是利用GUIDE还是图形句柄来创建图形用户界面,其基本过 程都是首先获取当前的图形对象句柄,然后利用get函数获取一 些属性获取动作,再通过set函数设置一些属性完成响 应。 在MATLAB平常的使用中,也可以充分利用句柄 h = plot(.) h即为句柄,一般在绘图时只是把图形属性放在括号内,实际上 使用set与h相结合的方法进行属性调整更加灵活。 x = -pi:.1:pi; y = sin(x); p = plot(x,y) set(p,Color,red,LineWidth,2) GUIDE工具入门 GUIDEGraphic User Interface Development Environment 在MATLAB中启动GUIDE的方法是在MATLAB命令行中键入指令: guide 或者通过“Start”菜单选择“MATLAB”下的“GUIDE”命令。 空白界面(Black GUI)。 具有图形控件的界面(GUI With Uicontrols)。 具有菜单和坐标轴的界面(GUI With Axes and Menu)。 模式对话框(Modal Question Dialog)。 GUI设计步骤 1. 进行界面设计。对界面空间的布局、控件的大小等进行 设计。 2. 利用GUIDE的外观编辑功能,将必要的控件依次绘制在界 面的“画布”上。 3. 设置控件的属性,这一步骤重点需要设置控件重要的属 性值,例如控件的回调函数、标签和显示的文本等。 4. 针对不同的控件需要完成的功能进行M语言编程。 放置图形用户界面的控件 创建菜单 创建菜单,创建菜单可以通过菜单编辑器完成。 设置对象属性 String属性和Tag属性 String为显示在控件上的文本,Tag相当于为控件取个名字(与句柄一 一对应)。设置属性可以使用GUIDE的属性察看器和控件浏览器完成。 在设置图形界面对象的Tag属性时,建议按照如下的格式进行设置: objectstyleObject-Function,即使用表示对象类型的字符串作为Tag属 性的前缀,这样在编写控件回调函数时,能够直接从控件的名称上判断 控件的类型,便于程序的管理和维护。 编写回调函数 MATLAB图形用户界面控件的回调函数,是指在界面控件被选中的时候, 响应动作的M语言函数。在回调函数中,一般需要完成如下功能:(实际 上是get和set两个动作): * 获取发出动作的对象句柄。 * 根据发出的动作,设置影响的对象属性。 一般地,回调函数的声明为 function object_Callback(hObject , eventData , handles) 其中: object为发生事件的控件的Tag属性字符串。 hObject为发生事件的控件的句柄。 eventData为保留字段,目前版本的MATLAB还暂时不使用。 handles为一个结构体,这个结构中包含所有界面上控件的Tag属性值,还 可以添加用户自己的数据。 常用对话框 提纲 MATLAB GUI 设计基础 GUI设计的一些tips ADVISOR软件给我的营养 Handles结构体 handles结构中包含了所有图形界面上控件的Tag属性值(也就是 句柄),同时还能够完成在不同的回调函数之间共享用户数据的 功能。在GUIDE创建的M函数文件中,若修改了handles结构,则 需要通过guiddata函数将handles的结构保存起来,只有这样才 能够通过handles结构将不同的用户数据传递到相应的子函数 中。 guidata,主要用来在图形用户界面中存储或者获取用户数据, 它的基本语法为 * 存储数据:guidata(object_handle,data)。 * 获取数据:data = guidata(object_handle)。 如果程序较大,则不适合用handles结构体传递数据,考虑 用其他方式。 Units和Position属性 确定各个对象的单位和位置 units pixels,inches, normalized, points, characters, centimeters Position 左,底,宽,高 根据不同的使用情况决定使用哪一种unit; 在设计有嵌套的界面时用normalized较好(利于进行整体 移动); 初期设计时一般直接拖动控件,不需要精确地设定参数, 在整体位置基本确定后再具体设定位置参数。 合理使用工具栏中的对齐工具。 Opening函数 在GUI开始运行但还不可见的时候执行,主要进行一些初始化操作。 function simple_gui_OpeningFcn(hObject, eventdata, handles, varargin) handles.peaks=peaks(35); handles.membrane=membrane; x,y = meshgrid(-8:.5:8); r = sqrt(x.2+y.2) + eps; sinc = sin(r)./r; handles.sinc = sinc; handles.current_data = handles.peaks; surf(handles.current_data) handles.output = hObject; guidata(hObject, handles); 最后两句为必不可少。 与opening函数类似的是普通控件的CreateFcn(有的控件有这个属性 ,有的没有),同样是界面开始运行时执行。 常用函数总结 get :get(h)或a=get(h);get(h,PropertyName) set,reset:a=set(h);set(h,PropertyName,PropertyValue,); reset(h) gcf(get current figure),gca,gco,gcbf,gcbo findobj:h=findobj;h=findobj(P1,V1,-logical,P2,V2) obj handles=findall(h list,p,value,) allchild,ancestor Copyobj delete,clf,cla,close 王牌组合是 set(findobj(tag,xxx),proper,xx),在界面 设计中非常有效。 提纲 MATLAB GUI 设计基础 GUI设计的一些tips ADVISOR软件给我的营养 ADVISOR的可借鉴之处 程序构架 1)程序输入文本在MATLAB基本工作空间中定义变量并调用 其他程序输入文本 2)静态(动态)仿真模型为一系列MATLAB文本文件组成的 程序,根据程序输入文本输入的数据,利用仿真模型计算 得到程序的输出。 3)程序输出文本的作用是通过读取MATLAB基本工作空间中 的数据对程序进行后处理。 4)程序控制文本对程序输入和程序输出进行管理。 关键在于程序控制文本,它是软件的骨架。其余部分围绕 程序控制文本展开。软件运算和仿真结果的好坏取决于静 态(动态)仿真模型的精确程度。 ADVISOR数据传递的具体方法 一个全局变量vinf储存重要信息(global vinf,全局变量 慎用) units: us optionlist: 1x1 struct name: PARALLEL_defaults_in drivetrain: 1x1 struct fuel_converter: 1x1 struct 这里的vinf作用类似一般程序中的handles,但使用更为 灵活。通常vinf保存在base中,需要的时候就在程序中 运行global vinf命令,使用结束之后vinf将自动更新( 涉及数据安全问题,如果使用不慎容易引起数据错误) 数据传递的具体方法 所有的运算和仿真在base中运行,便于调试,也便于控 制传递的参数数量(函数的参数变少) 使用assignin和evalin在函数和base中通信 assignin(base, imfile, imfile);将参数imfile存入base中 var = evalin(base, var);将base中的参数读入函数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 计算机科学核心知识试题及答案
- 法学概论与人文社会科学的交融试题及答案
- 山东省威海文登区四校联考2025届七下数学期末综合测试模拟试题含解析
- 信息处理技术员考试复习问题集试题及答案
- 增强班级合作意识的工作措施计划
- 法治文化的内涵与外延试题及答案
- 班级理论知识竞赛的组织与实施计划
- 企业治理与决策科学的总结计划
- 如何提升工作效率的策略计划
- 基于数据分析的急诊业务提升计划
- 信息安全基础试题及答案
- 基于PLC的自动生产线控制系统的设计毕业论文
- 肾病综合征护理疑难病例讨论
- 2024-2025人教七上数学26第3章代数式小结与复习【教案】
- 课件-DeepSeek从入门到精通
- 人文艺术活动与展览
- 字节跳动经营分析报告
- 测绘地理信息从业人员保密知识培训
- 起重机委托使用协议书范本
- OEE培训课件教学课件
- 2025年山东出版集团招聘笔试参考题库含答案解析
评论
0/150
提交评论