基于matlab的可视化界面制作
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MATLAB可视化设界面计(上)
一个可发布的应用程序通常都需要具备一个友好的图形界面(比如,我们开课时或给学生上课而使用课件时,我们一般就会用到可视化界面)。这样用户不需要知道应用程序究竟是怎样执行各种命令的, 而只需要了解可见界面组件的使用方法用户也不需要知道命令是如何执行, 只要通过与界面交互就可以使指定行为得以正确执行。MA TLAB可视化界面的设计, 一般有两种方法, 一是直接通过编辑M脚本文件产生GUI(这个方法就是我们在前面学习过的如何编写、调用M文件), 二是通过MA TLAB图形用户界面开发环境GUIDE(Graphical User Interface Development Environment)来形成相应文件。这里只讲述在GUIDE环境中利用控件实现可视化界面功能, 不探讨直接通过编辑脚本文件实现可视化界面的方法。
MA TLAB软件GUIDE为用户提供了一个方便高效的集成环境, 所有GUI支持的用户控件都集成在这个环境中, 并提供界面外观、属性和行为响应方式的设置方法。GUIDE将用户保存设计好的GUI界面保存在一个FIG资源文件中, 同时自动生成包含GUI初始化和组件界面布局控制代码的M文件, 为实现回调函数提供了一个参考框架。
下面以一个具体实例来说明GUIDE的开发使用以下所讲解的关于各控件的使用, 我们以MA TLAB7.0版本为调试环境, 如果版本的环境和版本略有不同,但基本思想和方法一致。为了方便大家学习,此处提供二个版本(即文字和视频,文字的即为下面的叙述,视频请点击此处。)
实例要完成的功能如下:
首先运行M文件后,出现一个主画面
当分别点击按钮“螺旋线”、“内摆线”、“圆旋转成圆环”和“退出”命令按钮时,分别出现如下列图示的动态、静态的结果。
螺旋线图
内摆线图
圆动成环图
退出信息图
下面看具体的操作步骤:
1)启动Matlab并进入GUIDE环境:在Command Window下输入“guide”,进入GUIDE环境。出现如下图所示的界面(写到这里,发现文字叙述很繁琐,但还得写,要命)。这里Matlab提供了一个新建空白界面及三个样本界面,它们分别是:GUI with Uicontrols;GUI with Axes and Menu;Modal Question Dialog;当然还有一个标签是用来打开已经编写好的GUI的。一般来说,我们会用Blank GUI,即空白的界面来写自己的东西。进入后,
Matlab就新建了一个fig文件(默认名是untitled.fig),同时得到如下的编辑窗口:
从上图我们可以看出Matlab 的Guide环境可以分为三个部分即菜单栏和工具栏、用户控件集、用户界面编辑窗口。菜单栏,暂时不作介绍,我们主要使用用户控件集(其它软件一般称为工具箱),用户控件集主要有命令按钮(Push Button)、切换按钮(Toggle Button)、单选按钮(Radio Button)、复选框按钮(Checkbox)、编辑框(Edit Button)、静态文本框(Static Button)
、滚动杆(Slider)、列表框(Listbox)、弹出式菜单(Pop-menu)、坐标轴(Axes)等。严格地讲, 坐标轴不能算控件的范畴。用户界面编辑窗口用于对受控的图形窗口进行编辑, 比如添加按钮、静态文本框等。
2)在用户界面编辑窗口添加相应控件(终于可以做具体的事了,这个就简单了,哈哈)
MATLAB可视化界面设计(下)
王林方发表于2010-4-2 11:12:00
推荐
首先,在用户界面编辑窗口添加4个命令按钮(显示是OK的用个PUSH BUTTON),再如下图所示添加5个静态文本框(Static Text)、5个编辑文本框(Edit Text)和一个坐标系(Axes)
其次,按下表设置每个控件的属性值(具体操作是:右击要设置属性的控件——property inspector 命令——在弹出的属性窗口中找到相应的属性名称——将该属性的值修改成自己需要的值)
控件名属性属性修改值
PushButton1 FontSize 16
String 螺旋线
Tag pushbuttonLxx
PushButton2 FontSize 16
String 内摆线
Tag pushbuttonNBX
PushButton3 FontSize 16
注:上面控件名称的编号,比如1,2之类,在界面上是没有的,只是我按照从上到下的次序,为方便叙述而编写的。
最后,添加程序(在添加程序前,最好先将文件保存一下,比如以Exp8.m为文件名保存),添加程序的常用方法是:单击菜单命令view——M-file Editor,此时,得到下面的程序:
function varargout = Exp8(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @Exp8_OpeningFcn, ...
'gui_OutputFcn', @Exp8_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
%上面的是系统初始化代码,绝对不要去修改它们。
function Exp8_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);
%上面的代码,告诉我们,一般的用户界面的自己设置的初始化状态应添加在这个函数内。
function varargout = Exp8_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
%上面的函数返回的量直接到命令窗口。
function pushbuttonLxx_Callback(hObject, eventdata, handles)
%上面的函数是点击螺旋线按钮时,执行的代码,即可以在此处添加有关螺旋线的程序代码。
function pushbuttonNBX_Callback(hObject, eventdata, handles)
%上面的函数是点击内摆线按钮时,执行的代码,即可以在此处添加有关内摆线的程序代码。
% --- Executes on button press in pushbuttonExit.
function pushbuttonExit_Callback(hObject, eventdata, handles)
%上面的函数是点击退出按钮时,执行的代码,即可以在此处添加退出时的程序代码。
function editBCR_Callback(hObject, eventdata, handles)
%上面的函数是editBCR这个编辑文本按钮回调时,执行的代码。
BigCircleRadial=str2double(get(hObject,'String'));
function editBCR_CreateFcn(hObject, eventdata, handles)
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end