matlab_GUI设计中常用控件格式要点
在Matlab中使用GUI设计用户界面
在Matlab中使用GUI设计用户界面引言Graphical User Interface (GUI) 是现代计算机软件中常用的一种类型用户界面,它通过图形化的形式提供了直观、易用的操作方式。
Matlab作为一种功能强大的数值计算软件,也提供了丰富的GUI设计工具,使得用户可以通过简单的拖拽和设置,快速地创建出美观实用的用户界面。
本文将介绍在Matlab中使用GUI设计用户界面的基本原理和步骤,并结合实例演示具体操作。
一、Matlab中的GUI设计工具Matlab提供了几种常用的GUI设计工具,包括GUIDE(GUI Development Environment)和App Designer。
GUIDE是Matlab较早期的一个GUI设计工具,提供了可视化的编辑界面,方便用户进行界面布局和交互事件的设置。
而App Designer是Matlab较新推出的GUI设计工具,相比GUIDE具有更加丰富的功能和更好的可视化编辑体验。
在本文中,我们将以App Designer为例来介绍Matlab中的GUI设计过程。
二、创建GUI应用程序在Matlab的主界面中,点击"APPS"菜单,选择"App Designer"打开App Designer界面,然后点击"Create App"按钮创建一个新的GUI应用程序。
在弹出的对话框中输入应用程序的名称并设置保存位置,点击"Create"按钮即可创建一个空的GUI应用程序。
三、设计用户界面在App Designer中,可以通过拖拽和调整控件来设计用户界面。
常用的控件包括按钮、文本框、下拉菜单、滑块等,用户可以根据需求自由选择和排列这些控件。
同时,还可以设置控件的属性,如大小、颜色、字体等,以及添加交互事件,如按下按钮后执行的操作。
四、设置控件属性和交互事件在设计好用户界面后,需要为每个控件设置相应的属性和交互事件。
MatlabGUI的菜单和工具栏常用操作
Matlab GUI 常用操作菜单1.编辑菜单打开GUIDE,选择工具栏上面的菜单编辑按钮2.添加菜单回调函数(callback)菜单编辑完成保存后,在fig对应的m文件中会自动生成菜单的回调函数声明例如菜单tag名为menuFilePrint,则对应的callback函数为:function menuFilePrint_Callback(hObject, eventdata, handles)可以在该函数内添加代码实现功能。
3.菜单项访问获取菜单句柄在matlab的函数中要对某个菜单进行访问,必须获得该菜单的句柄。
如果是在菜单的回调函数里面,hObject就是该菜单的句柄;如果是在其他的函数里面要获得某一菜单的句柄,比如选中工具栏上的ZoomIn按钮,按钮处于被按下状态,同时要设置对应菜单项view->Zoom-Zoom In 为选中状态,如下图:这里要在按钮“ZoomIn”的callback函数里面实现对菜单menuViewZoomIn的状态设置。
首先得获得菜单的句柄:% first we must get the handle of menuZoomInhFigChildren = allchild(gcf);% menuView handlehMenuView = findobj(hFigChildren,'Tag','menuView');hvc = allchild(hMenuView);% menuViewZoomhViewZoom = findobj(hvc,'Tag','menuViewZoom');hvzc = allchild(hViewZoom);%menuZoomIn handlehZoomIn = findobj(hvzc,'Tag', 'menuZoomIn');获取设置菜单状态得到菜单的句柄后就可以得到菜单当前的状态了:if strcmp(get(hZoomIn, 'Checked'),'on')set(hZoomIn, 'Checked', 'off');elseset(hZoomIn, 'Checked', 'on');end工具栏1.不显示工具栏1)GUIDE开发界面在对应的m文件中找到function Main_OpeningFcn(hObject, eventdata, handles, varargin)在该函数里面添加:set(hObject,'Toolbar','none');2)M文件开发hMainFigure = figure(... % The main GUI figure'MenuBar','none', ...'Toolbar','none', ...'HandleVisibility','callback', ...'Color', get(0,...'defaultuicontrolbackgroundcolor'));2.显示“Figure”工具栏set(hObject,'Toolbar','figure');3.添加自定义工具栏set(hObject,'Toolbar','none');hToolbar = uitoolbar(hObject);hNewPushtool = uipushtool(... % Open toolbar button'Parent',hToolbar,...'TooltipString','New File',...'CData',imread('New.bmp'));'HandleVis ibility','callback', ...'ClickedCallback', @hOpenMenuitemCallback);4.获取工具栏句柄% get toolbar handlehToolbar = findall(gcf,'Type','uitoolbar');if isempty(hToolbar), return, end5.获取figure工具栏按钮的tag值% get toolbar handlehToolbar = findall(gcf,'Type','uitoolbar');if isempty(hToolbar), return, end% get all childrenhChildren = allchild(hToolbar);if isempty(hChildren), return,endhTags = get(hChildren, ‘Tag’);hTags保存了工具栏所有按钮的tag值:6.获取设置figure工具栏按钮的callback函数%reset callback function for "Zoom in"hZoomIn = findobj(hChildren,'Tag','Exploration.ZoomIn');set(hZoomIn,'ClickedCallback',@tbZoomIn_Callback);function tbZoomIn_Callback(hObject, eventdata)% hObject handle to tbZoomIn (see GCBO)% eventdata reserved - to be defined in a future version of MATLA B 7.删除figure工具栏按钮% set figure toolbar firstset(hObject,'Toolbar','figure');% get toolbar handletbh = findall(hObject,'Type','uitoolbar');if isempty(tbh), return, end% toolbar buttons collectionhChildren = allchild(tbh);if isempty(hChildren), return, end% delete data cursor buttonhDeleted = findobj(hChildren,'Tag','Exploration.DataCursor');delete(hDeleted);8.设置figure工具栏按钮的状态% get toolbar handlehToolbar = findall(gcf,'Type','uitoolbar');if isempty(hToolbar), return, end% get all childrenhChildren = allchild(hToolbar);if isempty(hChildren), return,endhTags = get(hChildren, 'Tag');% find "Zoom In" buttonhb = findobj(hChildren,'Tag','Exploration.ZoomIn');if isempty(hb),return, end% set stateif strcmp(get(hObject, 'Checked'),'on')set(hObject, 'Checked', 'off');set(hb,'State', 'off');elseset(hObject, 'Checked', 'on');set(hb,'State', 'on');end。
matlab-GUI-设计(简易科学计算器)
MATLAB大作业班级:姓名:学号:计算器➢题目本题目通过MATLAB的gui程序设计较为简单,在gui设计中主要用到三种控件,文本编辑框(edit text),静态文本框(Static text),命令按钮(push button)。
然后在通过各个按钮的回调函数,实现简单的计算功能。
➢1、功能介绍(1)具有友好的用户图形界面。
实现十进制数的加、减、乘、除、乘方、开方等简单计算。
(2)具有科学计算函数,包括(反)正弦、(反)余弦、(反)正切、(反)余切、开方、指数等函数运行。
(注:三角函数计算的是弧度而不是角度)。
(3)有清除键,能清除操作。
➢2、功能实现程序由两个部分组成:MATLAB代码(.m文件)和GUI图形(.fig)。
程序使用的流程:直接利用图形界面中的按键键入所需数值、运算符等即可得出结果。
备注:软件版本:MATLAB 2011b首先用MATLAB GUI功能,在绘制一个静态文本框和一个文本编辑框,以及33个命令按钮,调整好各控件大小、颜色,整体布局如图所示:(附录中有相关属性修改介绍)然后通过双击各个按钮来改写其属性,在m文件中编写其回调函数,最后在运行调试。
2.1 各功能界面设计GUI设计界面:注:底部边框用(Panel)工具添加,有两种设计顺序。
(1、先加底部边框,再在底部边框上画功能键。
2、先画功能键,布好局,画底框,全选功能键拖动到底框上。
)2.2 各功能模块实现(可根据需要增减功能键)算法设计:1. 数字键设计:0—9以及小数点函数都一样,只是参数不同:例如:按键‘1’响应:global jjtextString = get(handles.text1,'String');if(strcmp(textString,'0.')==1)&(jj==0)set(handles.text1,'String','1') ;elsetextString =strcat(textString,'1');set(handles.text1,'String',textString)endjj=0;2. 四则运算函数:‘+’功能响应:textString = get(handles.text1,'String');textString =strcat(textString,'+');set(handles.text1,'String',textString)‘-’功能响应:textString = get(handles.text1,'String');textString =strcat(textString,'-');set(handles.text1,'String',textString)‘×’功能响应:textString = get(handles.text1,'String');textString =strcat(textString,'*');set(handles.text1,'String',textString)‘÷’功能响应:textString = get(handles.text1,'String');textString =strcat(textString,'/');set(handles.text1,'String',textString)3. 科学计算函数:例如:‘sin’功能响应:textString = get(handles.text1,'String');if(strcmp(textString,'0.')==1)set(handles.text1,'String','0.') ;elsea = strread(textString, '%f');a=sin(a);set(handles.text1,'String',a)end4. 退格键(DEL):通过取屏幕值,计算出其字符长度,然后取其前N-1项的值来实现退格:global jjtextString = get(handles.text1,'String');if(strcmp(textString,'0.')==1)&(jj==0)set(handles.text1,'String','0.') ;elsess=char(textString);l=length(textString);textString=ss(1:l-1);set(handles.text1,'String',textString)endjj=0;5. 清屏键函数(AC):set(handles.text1,'String','0.') ;2.3 各模块程序添加方法选中一个需添加程序的功能键,右击,View Callbacks,Callback,出现如下图所示界面。
经典GUI基础入门:MATLAB中GUI用户图形界面学习
GUI指导教程系列(1):GUI入门基本操作为什么在MATLAB中要使用GUI呢?其实GUI就是Matlab中的Visual Basic,是面向对象的编程,可以使Matlab程序的终端用户,即使不懂的Matlab也可以轻易操作该程序!如果没有图形用户界面(GUI)我们只能从命令行(Command Window)中调用相关程序,这相对比较繁琐,并且不是所有用户都是这个能力。
就好比计算机的DOS 系统,在有windows的情况下,您会选择DOS吗?当然我们也不排除骨灰级的人物!在本节教程我们主要针对没有GUI创建和使用经历的网友,但是必要的MATLAB 基础知识是需要的。
在教程中我们将创建一个简单的GUI程序,它执行两个数的加法运行,然后显示其运算结果。
好下面开始我们的教程!一、打开和创建GUI界面1、首先打开Matlab,在Command Window中输入guide回车2、此时打开GUI编辑器GUIDE(GUI Developer的缩写)2.1 界面上有两个标签也“Creat New GUI”和“Open Existing GUI”如果创建新的GUI此时我们选择第一个标签页,但如果打开其它已经存在的GUI 就点击第二个标签吧2.2 这里我们选择第一个标签下的“Blank GUI”(空白GUI),下面还有几个系统GUI模版,你可以根据需要选择其它的。
2.3 点击“OK”我们正式进入GUIDE界面,呵呵,是不是感觉似曾相识3、添加你需要的控件到figure中在添加控件之前,您最好对您的GUI界面布局已经有一定的构思了,否则盲目性太大了不利于您的编程。
下面是我们构思的布局。
二、添加控件和设置属性在正式讲解之前,我们先讲解下GUI中的鼠标基本操作(a) 在左边的控件面板中鼠标左击选择您需要的控件,然后放开鼠标(b) 在右边的figure中按住左键,画出您的控件,于是空间就在figure上(c) 你可以用鼠标拖拽figure上所有控件,来改变他们的位置(d) 在控件上双击鼠标左键(右击是快捷菜单)可打开控件属性面板1、从上面的布局构思,我们知道本GUI需要以下控件:三个“编辑文本框”(Edit Text):三个“静态文本框”(Static Text):一个“确定按钮”(Pushbutton)按照上面介绍的鼠标操作方法,将这6个控件拖到右边的figure中,如下图所示2、接下来就是编辑这些控件的属性好,下面从Static Text开始吧,双击其中一个“静态文本块”,将跳出该控件的“属性查看器”(Property Inspector)GUI控件的几个常用属性说明如下:position:指示空间在figure中的位置font**:字体相关属性string:相当如VB中的caption,就是显示在控件上的文字tag:控件的唯一标识符,相当于ID,我们需要tag来指定某一个空间2.1 在这里我们修改它的“string”属性为“+”2.2 同理修改它的“fontsize”属性为20在编辑完这些属性后,直接点击右上角的“关闭”按钮,关闭属性查看器,此时属性会自动保存。
第七讲MATLAB图形用户界面(GUI)设计
第七讲MATLAB图形⽤户界⾯(GUI)设计第7讲MATLAB图形⽤户界⾯(GUI)设计图形⽤户界⾯(GUI, Graphical User Interface)是由图形控件构建的⽤于⼈与计算机交互信息的界⾯。
在图形⽤户界⾯上,⽤户可以根据界⾯上的提⽰信息完成⾃⼰的⼯作,⽽不需要记忆⼤量繁琐的命令,只需通过⿏标、键盘等便捷的⽅式与计算机交互信息、选择想要运⾏的程序、控制程序的运⾏、实时显⽰图形信息。
MATLAB创建的图形⽤户界⾯对象有三类:⽤户界⾯控件,如按钮、列表框、编辑框等;下拉菜单,如菜单、⼦菜单;内容菜单,如弹出式菜单。
⼀、命令⾏建⽴⽤户界⾯的⽅法1、创建控件命令:uicontrol调⽤格式:1)uicontrol(‘PropertyName1’,value1, ‘PropertyName2’,value2,……)功能:在当前图形⽤户的界⾯上,应⽤当前制定的属性值创建控件;2)h=uicontrol(‘PropertyName1’,value1, ‘PropertyName2’,value2,……)功能:在当前图形⽤户的界⾯上,应⽤当前制定的属性值创建控件,并返回控件的句柄;3)uicontrol(FIG, ‘PropertyName1’,value1, ‘PropertyName2’,value2,……)功能:在句柄FIG指定的图形⽤户界⾯上,创建控件;4)h=uicontrol(FIG, ‘PropertyName1’,value1, ‘PropertyName2’,value2,……) 功能:在句柄FIG指定的图形⽤户界⾯上,创建控件,并返回控件的句柄。
说明:函数中的PropertyName参数的参数值有:Push buttons(命令按钮)、sliders (滚动条控件)、Radio button(单选按钮)、Check box(复选框)、Edit text (可编程⽂本框)、Static text(静态⽂本框)、Pop_up menus(弹出式菜单)、listbox(列表框)、Toggle button(开关按钮)、Axes(坐标轴)、Panel(⾯板控件)、Button group(按钮组框)、ActiveX control(ActiveX 控件)。
matlab gui 设计总结
1. 7以上版本的matlab,控件pushbutton背景颜色修改以后并没有什么明显效果,只是按钮的边缘显示为所设置的背景颜色。
2 .凡是在属性对话框Property Inspector中可以设置的属性,都可以在其对应的m文件中使用set(….)函数来设置3.每个控件的句柄都可以通过handles.tagname来调用(tagname是所使用的控件的tagname)4.控件Edit Text不会自动生成Creatfucntion,只有回调函数——callback function5. 控件Static Text也不会自动生成CreatFunction和CallbackFunction,但是可以通过它的句柄handles.tag,对其属性进行修改,例如让其显示一些数字,就可以这么设:set(handles.show,'string',num2str(t)); 其中handles.show是一个Static Text控件的句柄6.从控件Edit Text中读取输入的数据,使用函数: str2num(get(handles.x1_trn,'string')))其中handles.x1_trn是一个Edit Text的句柄7.若想在界面打开的时候显示一些东西或者执行一些动作,可以将程序写在函数OpeningFcn内。
8.关于显示图片,如下例:A=imread('trn.bmp');%读取图片trn.bmp的信息,存放在A中,此处该图片是与本函数存放在同一根目录下的,若不是,那么需要把图片的完整路径写出来,例如’d:\pic\trn.bmp’B=imread('stb.bmp');%读取图片stb.bmp的信息,存放在A中axes(handles.axes1);%指定显示图片的坐标系,handles.axes1为其句柄imshow(A);%显示图片trn.bmp;axes(handles.axes2); %指定显示图片的坐标系,handles.axes1为其句柄imshow(B);%显示图片stb.bmp显示图片还可以用函数image(…),与函数imshow区别在于,image是将图片当作数据来处理的,会显示坐标系,刻度等等,而imshow只是显示图片9.关于global的用法!Global用来声明变量的通用,有点像C语言中的全局变量,如果要想将变量a 声明为global型的,那么在所有定义和使用a的函数中都要声明:global a;还有就是要使用global变量的函数都必须在同一根目录下。
MatlabGUI设计详细说明
MatlabGUI设计详细说明Matlab GUI设计⼩结1.pushbutton在function pushbutton1_Callback(hObject,eventdata,handles)下进⾏pushbutton功能设计,按下pushbutton后会执⾏回调函数callback中的程序,双击pushbutton弹出属性编辑对话框,在String中可以键⼊pushbutton的名字function pushbutton1_Callback(hObject,eventdata,handles)%功能程序代码guidata(hObject,handles);2.edit编辑框%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%get()set()num2str()str2num()open函数名%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% edit可以作为输⼊输出读⼊数据d=get(handles.edit1,’String’);这时读进来的是字符型数据,通过str2num可以转换成double型d=str2num(d);作为输出,通过set来设置,输出的应该是字符型,可以通过num2str把set(handles.edit1,’String’,num2str(d));matlab的系统函数如get(),set(),num2str(),str2num()可以通过在matlab命令⾏中键⼊open函数名来查看函数实现源代码3.static text静态⽂本框text只能作为输出,通过set(handles.text1,’String’,str)来设置text显⽰的内容,也可以在属性编辑对话框中String中直接键⼊。
4.popupmenu下拉菜单这是第⼀个⽐较复杂的对象。
在GUI编程可以直接在属性编辑对话框中String⼀项直接键⼊下拉菜单中的内容然后是如何读取下拉菜单中选中的内容通过Value可以获取下拉菜单中当前选中的是哪⼀个String,Val=get(handles.popupmenu1,’Value’)返回的是下拉菜单中选中的string对应的位置Popupmenu其实是⼀个字符串数组,Value返回的是当前选中的字符串在数组中的下标,下标是从1开始。
matlab,gui中switch用法
MATLAB GUI中的Switch用法1. 简介MATLAB是一种专门用于科学计算和数据分析的高级编程语言和交互式环境。
在MATLAB中,GUI(Graphical User Interface,图形用户界面)是一个非常有用的工具,可以帮助用户以更直观的方式与程序进行交互。
而Switch(开关)是GUI中常用的控件,它可以根据用户的选择执行不同的操作。
2. Switch控件的基本语法在MATLAB的GUI中,Switch是一种可以让用户在几个选项中进行选择的控件。
它的基本语法如下所示:```matlabswitch = uiswitch(parent)```其中,'parent'参数代表Switch控件的父级对象,可以是Figure、Panel等。
通过这个语法,可以创建一个Switch控件并将其添加到GUI中。
3. Switch控件的属性Switch控件有许多可配置的属性,例如Position(位置)、Items(选项)、ValueChanged(数值改变时的回调函数)等。
在使用Switch控件时,可以根据需要设置这些属性以实现特定的功能。
4. Switch控件的常见用法Switch控件通常用于根据用户的选择执行不同的操作。
在一个应用程序中,可以使用Switch控件来选择不同的数据处理方式,或者切换不同的显示模式。
在MATLAB GUI中使用Switch控件的常见步骤如下:1)创建Switch控件需要创建一个Switch控件并添加到GUI中。
可以使用上面提到的基本语法,在需要添加Switch控件的位置创建一个Switch对象。
2)设置Switch控件的属性接下来,可以根据需要设置Switch控件的各种属性。
可以使用Items 属性设置Switch控件的选项,使用ValueChanged属性设置Switch 控件数值改变时的回调函数等。
3)处理Switch控件的数值改变事件当用户在GUI中选择了Switch控件的某个选项时,Switch控件的数值会发生改变,可以通过设置ValueChanged属性来处理这个事件。
MatlabGUI菜单设计
因其调用方法不同,该函数可以用于建立一级菜 单项和子菜单项。 建立一级菜单项的函数调用格式为: 一级菜单项句柄=uimenu(图形窗口句柄,属性 名1,属性值1,属性名2,属性值2,…)
③ UserData属性 UserData属性的取值是一个矩阵,缺省值为空矩阵, 用户可以在这个属性中保存与该菜单对象相关的重要数 据或信息,借此可以达到传递数据或信息的目的。可以 用set和get函数访问该属性。 回调属性(callback)和菜单名(label)
【*例 11.3.3.1-1】本例的目标是:在图形窗上自制一个名为【Test】的“顶层菜 单项”;当用鼠标点动该菜单项时,将产生一个带分格的封闭坐标轴。通过本 例说明:(A)回调属性的运作机理;(B)用户顶层菜单项的制作(C) uimenu 属性的设置方法;(D)复杂字符串的构成方法和注意事项。 (1)在 MATLAB 指令窗中运行以下程序可产生带分格的封闭坐标轴(如下图) grid on,set(gca,'box','on')
(2)在 MATLAB 指令窗中用以下
eval 指令可产生与图 11.3.3.1-1 相同 的界面
eval('grid on,set(gca,''box'',''on'')') (3)产生题目要求的界面的 uimenu 的书写格式为:直接连续表 示法: uimenu('Label','Test','Callback','grid on,set(gca,''box'',''on''),')
matlab-GUI-操作讲义-图形用户界面设计
%字体大小
FontUnits normaliszed 位,缩放时保持字体比例
%采用相对度量单
HorizontalAlignment Center
%文字中心对齐
String
Grid on %在按键上显示Grid on
Tag
GridOn_push
%生成
handles.GridOn_push域存放该键句柄
6
7.1.2 一般制作步骤
界面制作包括界面设计和程序实现。 分析界面所要实现的主要功能,明确设
计任务; 绘界面草图,注意从使用者的角度来考
虑界面布局; 按构思的草图,上机制作静态界面; 编写界面动态功能程序。
7
7.2 图形用户界面设计
7.2.1 可视化的界面环境
MATLAB6.5版本提供的GUI设计工具较前面的版本 有较大的改善,设计界面变化很大。打开GUI设计 工具的方法有以下几种:
14
填写菜单名,如果在前面加“&”符号则加快捷键,当运
7.2.2 创建用户菜单 行时第一个字母会加下划线,以便用户快速激活菜单项
新 建 菜 单
新建子菜单1在.菜GU单菜单左右移I设、编计辑菜单上、下移工作删除菜单台分的隔菜符 单条选择“Tool”
标记
-”Menu Editor…”或单击工具栏“Menu
Tag
figuer1
%生成handles.figure1域存放图形窗句柄
29
7.3 图形用户界面设计工具应用(续)
在轴属性编辑框中,设置如下属性值:
Units normalized 缩放时保持比例
%采用相对度量单位,
Box off
%坐标轴不封闭
Tag
axes1
matlabGUI设计中常用控件格式
MATLAB GUI新手备忘录1、从最简单的开始编程最基本的目的:就是——我执行一个操作,程序做出一个反应。
“一个操作”包括:点击鼠标,拖动滑块,填写数据,选择选项……“做出一个反应”包括:计算一些东西,然后储存在哪里,或者贴个图出来,或者显示在哪里……-------------------------------------------------------------------------------------- 编程的基本思想:目的->当点击按钮A时,然后执行任务C,则->进入按钮A的回调函数callback里,写下任务C的代码。
-------------------------------------------------------------------------------------- a:不知道callback在哪??右键单击按钮,view callbacks->选择callback)别的控件也一样。
a:不同的回调函数啥意思??callBack最常用的就是它。
如果控件是按钮,那点击按钮时,则按钮下的Callback就会执行;如果是滑块,则拖动滑块时,滑块名下的callback就会执行;总之,就是对控件默认操作时,matlab后台就会自动调用它名下的的callback。
正常用途,全放在callback下就够了。
如果其他的,实在是想知道,了解一下也未尝不可。
ButtonDownFcn就是鼠标在它(代指各种控件)上面点击一下,你放在这个函数名下的代码就会执行。
(ps:按钮的callback也是点击,所以会覆盖掉这个buttondownfcn。
)CreateFcn顾名思义,在生成这个控件,显示之前,执行你放在这个函数名下的代码;DeleteFcn一样。
在控件要销毁,但是被毁灭之前执行这个函数名下的代码。
貌似“真的要退出吗”这一类就是写在这里。
KeyPressFcn当前控件获得焦点且有按键按下时执行。
MATLABGUI程序设计
MATLABGUI程序设计MATLAB是一种强大的技术计算软件,它具有丰富的功能和灵活的编程环境。
通过使用MATLAB,我们可以进行各种技术计算、数据分析和可视化操作。
在MATLAB中,GUI(Graphical User Interface)程序设计可以帮助我们创建交互式的、用户友好的图形界面应用程序。
在本文中,我将介绍一些MATLAB GUI程序设计的基本知识和步骤。
首先,我们需要了解MATLAB中用于创建GUI的工具和函数。
MATLAB 提供了两个主要的工具箱来支持GUI程序设计:GUIDE(GUI Development Environment)和App Designer。
GUIDE是一个可视化的设计工具,可以通过拖放元件和设置属性来创建GUI。
App Designer是一个面向对象的环境,它使用MATLAB代码进行GUI设计和编程。
为了创建一个GUI程序,我们需要遵循以下几个主要步骤:1. 设计GUI界面:在GUIDE或App Designer中,可以使用各种界面元件(如按钮、文本框、列表等)来构建GUI界面。
我们可以根据需求进行布局和调整大小,并设置元件的属性(如位置、尺寸、颜色等)。
2.编写回调函数:回调函数是GUI中各个元件与代码之间的桥梁,当元件被触发或变化时,回调函数将被调用。
我们可以通过编写回调函数来实现GUI的交互功能。
在MATLAB中,回调函数通常是一个独立的函数文件,其中包含了处理特定事件的代码。
3.处理输入和输出:GUI程序通常需要与用户进行交互,包括接收用户输入和显示程序输出。
在回调函数中,我们可以使用MATLAB的输入/输出函数来实现这些功能。
例如,可以使用输入对话框来接收用户输入,并使用消息框或文本框来显示输出结果。
4.调试和测试:在创建GUI程序的过程中,我们可能会遇到错误和问题。
为了确保程序的正确性和稳定性,我们需要进行调试和测试。
MATLAB 提供了调试工具和函数,可以帮助我们找出错误并修复它们。
matlab-GUI程序设计
%得到当前方位角在滚动条中的实际数值;
handles.az= val1;
%对handles.az重新赋值;
guidata(hObject,handles); % 存储handles结构.
if isnumeric(val) & val >= -90 & val <= 90 %判断若输入的数值在规定范围
view([handles.az,handles.el]);
else
errordlg('输入参数错误!输入数值在[-90,90]之间!');
set(handles.edit_el,'String','30' );
end
errordlg函数,是一个Matlab自定义的弹出式 出错对话框函数,该函数的输入参数为对话框 上显示的字符串.当程序执行到此时,会弹出一 个出错对话框,并显示出错信息: 输入参数错误!输入数值在[-90,90]之间!
GUI界面设计
后台回调函数设计
(1) GUI程序启动与界面简介
新建一个GUI程序,可以Command Window中输入 guide,或者在Matlab界面菜单上点击
在弹出的对话框中,选择“Creat New GUI”的“Blank GUI(Default)”选项,选择OK后,即打开一个空 白的GUI程序界面,
保存后运行,可发现此时已在轴上绘制出peaks的图形, 且视角显示对应的数据,这表明此时已经自动运行了该 函数.但拖动滚动条时程序没有反应,这是因为还没设置 拖动滚动条时的回调函数.
(2)为编辑框设置回调函数
在prog1_8.fig上,选中edit_az编辑框,点右键,选中 “view Callbacks”,选中Callback,即进行回调函数编写.
matlab-GUI-设计的控件使用
Matlab GUIDE使用总结--Matlab GUI界面(zz)去年做了一些关于Matlab GUI的程序,现在又要做相关的东西,回想起来,当时很多经验没有记录下来,现在回顾起来始终觉得不爽,所以从现在开始,一定要勤写记录。
从简单的例子说起吧。
创建Matlab GUI界面通常有两种方式:1,使用 .m 文件直接动态添加控件2. 使用GUIDE 快速的生成GUI界面显然第二种可视化编辑方法算更适合写大型程序。
一:创建GUI1.在 .m文件中动态添加例如h_main=figure(‘name’,‘a demo of gui design’,‘menubar’,‘none’,…'numbertitle','off','position',[100 100 300 100]);h_edit=uicontrol('style','edit','backgroundcolor',[1 1 1],'position',[20 20 50 20],...'tag','myedit','string','1','horizontalalignment','left');h_but1=uicontrol('style','pushbutton','position',[20 50 50 20],'string','INC',...'callback',['v=eval(get(h_edit,''string''));',...'set(h_edit,''string'',int2str(v+1));']);h_but2=uicontrol('style','pushbutton','position',[80 50 50 20],'string','DEC',...'callback',['v=eval(get(h_edit,''string''));','set(h_edit,''string'',int2str(v-1));']);2.使用GUIDE帮助创建GUI在Command 里面输入GUIDE 或者从菜单里面,或者从快捷按钮均可进入GUIDE新建并且保存后,会生成相应的fig文件和m文件,在Layout编辑视图,可以使用如下工具:Layout Editor:布局编辑器;Alignment Tool:对齐工具;Property Inspector:对象属性观察器;Object Browser:对象浏览器;Menu Editor:菜单编辑器。
第七章 MATLAB的GUI 程序设计
第七章MATLAB的GUI 程序设计Chapter 8: Design of MATLAB of GUIprogramGUI(Graphical User Interfaces):由各种图形对象组成的用户界面,在这种用户界面下,用户的命令和对程序的控制是通过“选择”各种图形对象来实现的。
目前90%以上的应用程序和软件都是在GUI下运行的。
MATLAB有两种GUI用户界面控件的创建方式,基于命令行的方式用程序来制作和基于GUI的方式制作。
这里主要介绍基于GUI 的方式。
MATLAB 的GUI的基本图形对象分为控件对象和用户界面菜单对象(包括固定菜单和现场菜单),简称控件和菜单。
一.控件对象及属性(Object and its attributes of controller))1. GUI控件对象类型(The mode of controller object)控件对象是事件响应的图形界面对象。
当某一事件发生时,应用程序会做出响应并执行某些预定的功能子程序(Callback).常用的基本控件:(1)按钮(Push Buttons):执行某种预定的单功能或操作;(2)开关按钮(Toggle Button):产生一个动作并指示一个二进制状态(开或关),当鼠标点击它时按钮将下陷,并执行callback(回调函数)中指定的内容,再次点击,按钮复原,并再次执行callback 中的内容;(3)单选框(Radio Button):单个的单选框用来在两种状态之间切换,多个单选框组成一个单选框组时,用户只能在一组状态中选择单一的状态,或称为单选项;(4)复选框(Check Boxes):单个的复选框用来在两种状态之间切换,多个复选框组成一个复选框组时,可使用户在一组状态中作组合式的选择,或称为多选项;(5)文本编辑器(Editable Texts):用来使用键盘输入字符串的值,可以对编辑框中的内容进行编辑、删除和替换等操作;(6)静态文本框(Static Texts):仅仅用于显示单行的说明文字;(7)滚动条(Slider):可输入指定范围的数量值;(8)边框(Frames):在图形窗口圈出一块区域;(9)列表框(List Boxes):在其中定义一系列可供选择的字符串;(10)弹出式菜单(Popup Menus):让用户从一列菜单项中选择一项作为参数输入;(11)坐标轴(Axes):用于显示图形和图象2.控件对象的描述(Description of controller object)MATLAB中的控件大致可分为两种,一种为动作控件,鼠标点击这些控件时会产生相应的响应。
第八章MATLAB的GUI程序设计
第八章MATLAB的GUI 程序设计Chapter 8: Design of MATLAB of GUIprogramGUI(Graphical User Interfaces):由各种图形对象组成的用户界面,在这种用户界面下,用户的命令和对程序的控制是通过“选择”各种图形对象来实现的。
基本图形对象分为控件对象和用户界面菜单对象,简称控件和菜单。
一.控件对象及属性(Object and its attributes of controller))1. GUI控件对象类型(The mode of controller object)控件对象是事件响应的图形界面对象。
当某一事件发生时,应用程序会做出响应并执行某些预定的功能子程序(Callback).控件对象及其功能:(表7—1)2.控件对象的描述(Description of controller object)MATLAB中的控件大致可分为两种,一种为动作控件,鼠标点击这些控件时会产生相应的响应。
一种为静态控件,是一种不产生响应的控件,如文本框等。
每种控件都有一些可以设置的参数,用于表现控件的外形、功能及效果,既属性。
属性由两部分组成:属性名和属性值,它们必须是成对出现的。
(1)按钮(Push Buttons):执行某种预定的功能或操作;(2)开关按钮(Toggle Button):产生一个动作并指示一个二进制状态(开或关),当鼠点击它时按钮将下陷,并执行callback(回调函数)中指定的内容,再次点击,按钮复原,并再次执行callback 中的内容;(3)单选框(Radio Button):单个的单选框用来在两种状态之间切换,多个单选框组成一个单选框组时,用户只能在一组状态中选择单一的状态,或称为单选项;(4)复选框(Check Boxes):单个的复选框用来在两种状态之间切换,多个复选框组成一个复选框组时,可使用户在一组状态中作组合式的选择,或称为多选项;(5)文本编辑器(Editable Texts):用来使用键盘输入字符串的值,可以对编辑框中的内容进行编辑、删除和替换等操作;(6)静态文本框(Static Texts):仅仅用于显示单行的说明文字;(7)滚动条(Slider):可输入指定范围的数量值;(8)边框(Frames):在图形窗口圈出一块区域;(9)列表框(List Boxes):在其中定义一系列可供选择的字符串;(10)弹出式菜单(Popup Menus):让用户从一列菜单项中选择一项作为参数输入;(11)坐标轴(Axes):用于显示图形和图象3. 控件对象的属性(Attributes of controller object)用户可以在创建控件对象时,设定其属性值,未指定时将使用系统缺省值。
MATLABGUI界面设计资料
22
火龙果整理
4. 菜单编辑器(Menu Editor)
菜单编辑器左上角的第四 个与第五个按钮用于对选 中的菜单进行左移与右移, 第六与第七个按钮用于对 选中的菜单进行上移与下 移,最右边的按钮用于删 除选中的菜单。
23
火龙果整理
5. 对象浏览器(Object Browsers)
3
图形用户界面设计工具的启动
图形用户界面设计工具的启动方式: 1. 命令方式
火龙果整理
图形用户界面GUI设计工具的启动命令为guide,格式为: 1)guide 功能:启动GUI设计工具,并建立名字为untitled.fig的图形 用户界面。 2)guide filename 功能:启动GUI设计工具,并打开已建立的图形用户界面 filename。
28
2.控件对象的属性 (Attributes of controller object)
火龙果整理
每种控件都有一些可以设置的参数,用于表现控件 的外形、功能及效果,即属性。属性由两部分组成: 属性名和属性值,它们必须是成对出现的。 用户可以在创建控件对象时,设定其属性值,未指 定时将使用系统缺省值。 两大类控件对象属性:第一类是所有控件对象都具 有的公共属性,第二类是控件对象作为图形对象所具 有的属性。
1. 布局编辑器(Layout editor)
3) 运行GUI程序 在命令窗口直接键入文件名或用openfig, open或hgload命令运行GUI程序。
14
火龙果整理
4) 布局编辑器参数设置
File菜单下的
Preferences菜
单项打开参数 设置窗口,点 击树状目录中 的GUIDE, 即可以设置布 局编辑器的参 数。
MatlabGUI程序编制技巧
Matlab GUI 程序编制技巧1.确定界面启动的初始态编制界面最好的方法是在GUIDE 里绘制,完成后存盘会自动生成“文件名.fig ”和“文件名.m”文件,前者存储了界面的各项参数,如大小、菜单、控件等;后者是一个自动生成的调用参数的脚本文件,在界面中的每一个控件和菜单都有相应的回调函数,所需要的运行程序都填写在这些回调函数中。
一般每一个界面的启动状态在GUIDE里绘制完成,它们的参数存储在“文件名.fig ”文件中。
但有时需要在启动时运行某些程序,如在截面上显示一幅图像,并进行某些处理等,这些代码就要写在“文件名_OpeningFcn (hObject, eventdata, handles, varargin)”函数中。
2.从界面读取数据从界面的控件中读取数据的基本格式为:get(findobj(gcf,'Tag',' 控件名'),'属性');其中的findobj函数用于寻找特定的控件,该控件的“Tag”属性为后面的字符串。
对控件的属性进行设置的基本格式为:set(findobj(gcf,'Tag',' 控件名'),'属性',属性值);当要对界面本身的属性进行操作时,用get(gcf,'属性');和set(gcf,'属性',属性值);比如要把一个变量a 存入界面的UserData 中,用set(gcf,'UserData',a);3.不同界面间变量空间的切换和数据的传递有时一个程序不止一个界面,而且要在几个界面间切换,但它们的变量在不同的空间中,不能通用,因为每当调用一个界面函数,都会进入一个新的变量空间。
解决的办法是利用界面和控件的’UserData'属性在界面的转换过程中传递界面的句柄和变量。
如一个主界面imagmatching2调用参数设置界面paracall2,为了在调用完之后,程序可以返回主界面(连同新的变量),必须将主界面的句柄作为参数传递给设置界面函数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MATLAB GUI新手备忘录1、从最简单的开始编程最基本的目的:就是——我执行一个操作,程序做出一个反应。
“一个操作”包括:点击鼠标,拖动滑块,填写数据,选择选项……“做出一个反应”包括:计算一些东西,然后储存在哪里,或者贴个图出来,或者显示在哪里……-------------------------------------------------------------------------------------- 编程的基本思想:目的->当点击按钮A时,然后执行任务C,则->进入按钮A的回调函数callback里,写下任务C的代码。
-------------------------------------------------------------------------------------- a:不知道callback在哪??右键单击按钮,view callbacks->选择callback)别的控件也一样。
a:不同的回调函数啥意思??callBack最常用的就是它。
如果控件是按钮,那点击按钮时,则按钮下的Callback就会执行;如果是滑块,则拖动滑块时,滑块名下的callback就会执行;总之,就是对控件默认操作时,matlab后台就会自动调用它名下的的callback。
正常用途,全放在callback下就够了。
如果其他的,实在是想知道,了解一下也未尝不可。
ButtonDownFcn就是鼠标在它(代指各种控件)上面点击一下,你放在这个函数名下的代码就会执行。
(ps:按钮的callback也是点击,所以会覆盖掉这个buttondownfcn。
)CreateFcn顾名思义,在生成这个控件,显示之前,执行你放在这个函数名下的代码;DeleteFcn一样。
在控件要销毁,但是被毁灭之前执行这个函数名下的代码。
貌似“真的要退出吗”这一类就是写在这里。
KeyPressFcn当前控件获得焦点且有按键按下时执行。
(什么是焦点?就是这个控件被鼠标点了(或者是tab 轮选到了)。
你打开一个记事本,然后再点这个网页,再随便按几个按键,记事本上有字不?没有对吧。
因为它没获得焦点,所以你的按键它不会反应的。
只有你最后再点它一下,再按几个按键,结果怎么样?有字了吧?)这里的KeyPressFcn也是一样的道理。
一般在这下面的代码还会判断下按键是什么,然后执行相应的代码。
ResizeFcn,SelectionChangeFcn 不常用。
也懒得去看了。
附几句,控件都有Resize的属性,好像默认是不可调整,如果要用到这个函数,去把它打开先。
SelectionChangeFcn是在群按钮组件中,改变选择时,所执行的函数。
-------------------------------------------------------------------------------------- 哪些控件支持哪些回调函数?你在它上面右键就可以看到了,点进去就可以编辑了。
可以在property inspect中在需要的回调函数下设置%automatic就可以自动添加相应的回调第八章结论函数框架。
2、常用控件代码框架参考---------------------------------------------------------------------Toggle Button的callback一般写法toggle button是什么?设计面板上,左边那一栏图标,看到它名字了吧?没看到?File->preference->GUIDE->把那个show names那一栏勾选上。
好了,可以看到了吧。
知道是什么了吧?拖进来,双击它,看到它的属性设置表。
上面各种各样的属性,以后有时间慢慢研究。
点下它时,它默认value ='Max'不点下它时,它value='Min'--------代码:functon togglebutton1_callback(hObject,eventdata,handles)%这一句,现在不用管。
自动加的。
%%%以下是一般代码button_state = get(hObject,'Value')%控件甲的callback下面hObject就是控件甲,同理控件乙callback下的hObject......if button_state==get(hObject,'Max')%则怎么怎么怎么else if button_state==get(hObject,'Min')%则怎么怎么怎么end--------备注:button_state随便取的变量名,存放按钮的选择状态,别以为它是什么喔。
如果你的button甲是放在一个buttonGroup里面,则button甲callback下的代码就要挪到buttonGroup下面去。
因为buttonGroup的回调函数会覆盖掉它成员的回调函数。
----------------------------------------Radio Buttons------代码:右键点选你的Radio按钮,进入编辑callbackfunction ………………略if(get(hObject,'Value')==get(hObject,'Max'))%被选中了,你想怎么样else%不被选中,你想怎么样end-----------------------------------------Check Boxes-------代码:if(get(hObject,'Value')==get(hObject,'Max'))%被选中了,你想怎么样else%不被选中,你想怎么样end------------------------------------------Edit Text-----------代码:function edit1_Callback(hObject,eventdata,handles)user_string = get(hObject,'String'); %就得到了所输入的字符%因为matlab是把所有的输入当作字符来看待,如果你是期望的到输入的数据的话,则:user_entry= str2double(get(hObject,'String')); 这里进行一个数据类型转换。
看函数名就知道了。
if isnan(user_entry) %nan就是not a number的简写。
知道这个函数意思了吧?errodlg('You must entry a number value','Bad Input','modal') %跳出一个对话框。
end%正确得到了数值,以下输入你的其他代码----------附: 'Bad Input'是指窗口样式,就像我们在操作系统下,经常会跳出一个黄色感叹号的对话框,或者一个红叉的对话框;modal是指窗口类型,就像一些程序跳出警告对话框,我们什么也不能做了,只能把那个对话框选择一个是或者不是,才能继续做其他事情。
这种对话框就是modal类型。
而通常的比如浏览器的界面,我们打开后,可以不管,然后打开别的对话框,这种就是非模态对话框。
默认在点击你的界面菜单栏或者界面上的其他组件后,这个edit text的callback都回被执行一遍,所以在你点确定按钮的时候,edit callback下读到的数据会更新的了,不用担心!---------------------------------------------------Sliders---------代码:function slider1_callback(hObject,eventdata,handles)slide_value=get(hObject,'Value');%获取滑块当前值%别的代码第八章结论----------附:它的Max Min 属性设置了滑竿的最大最小范围值。
---------------------------------------------------List Boxes-----------代码:function ........index = get(handles.listbox1,'Value'); %listbox1是你自己的那个控件的tag名字file_list =get(handles.listbox1,'String'); %得到了你的listBoxes的列表file_name = file_list{index};%得到了所选择的项目名,一下写自己的代码-------------------附:此 callback在鼠标在这个控件上松开或者特定的键盘按键松开(看你怎么设置它的别的属性的了)时候执行。
默认键盘上下键可以改变它的值同时执行一次callback。
而enter和space不改变它的值,只是执行callbackMax-Min 差值是0的话,表示只可以单选;1的话,表示可以多选。
这个可以在他的属性栏里设置----------------------------------------------------------Pop_up Menus--------------代码:function .......val=get(hObject,'Value')Switch valcase 1%case 2%defualt......end----------------------------------------------------Button Groups------------------代码:function .......switch get(hObject,'Tag');%注意这里的hObject和别的不同,并不是指这个BUtton Group,而是指在组里面,被选中的那个控件case 'radio button1' %按钮1的tag%。
case '按钮2的tag'%。
end----------Axes在坐标上画图附:所以在这里,如果要拿到button groups本身的话,就用handles.它的tag名中间一个点。
--------------------------------------------------Axes-------------它是用来画图的,可以说是一块画布。