matlab GUI控件编写

合集下载

利用Matlab的图形用户界面(GUI)功能,设计并实现实验主界面

利用Matlab的图形用户界面(GUI)功能,设计并实现实验主界面

(1)利用Matlab的图形用户界面(GUI)功能,设计并实现实验主界面;(2) 实现在“符号计算”图形用户界面中的各项符号计算功能,如实现Matlab的求极限、求导、求不定积分与定积分、级数求和、方程组的符号求解、常微分方程的符号求解等符号计算;(3) 利用Matlab的二维、三维绘图功能,实现图形用户界面(GUI)中的部分符号计算的可视化,即给出符号计算实例的同时实现该实例的图形化描述。

如下图给出了一个简单的GUI界面,学生可以参考如下图设计出自己的GUI界面。

程序如下:hf=figure('Position',[200,200,700,500],...'Name','信计08(2)班阿卜杜热黑木20080803417', ...'NumberTitle','off','MenuBar','none');uicontrol(hf,'Style','Frame','Position',[0,0.15,0.45,1],...'Units','normalized','Back',[0,1,1]);COMM1=['n=str2num(get(he1,''String''));', ...%求导连接'b=sym(get(he7,''String''));',...'dec=diff(b,n);', ...'set(he8,''string'',char(dec));'];COMM2=['a=str2num(get(he2,''String''));', ...%求极限连接'f=sym(get(he7,''String''));',...'lim=limit(f,a);', ...'set(he8,''string'',char(lim));'];COMM3=['g=sym(get(he7,''String''));',... %不定积分连接'int_1=int(g);', ...'set(he8,''string'',char(int_1));'];COMM4=['a=str2num(get(he3,''String''));', ... %级数求和连接'b=str2num(get(he5,''String''));', ...'f=sym(get(he7,''String''));',...'sum_1=symsum(f,a,b);', ...'set(he8,''string'',char(sum_1));'];COMM5=['a=str2num(get(he4,''String''));', ... %定积分连接'b=str2num(get(he6,''String''));', ...'f=sym(get(he7,''String''));',...'int_2=int(f,a,b);', ...'set(he8,''string'',char(int_2));'];COMM6=['f=get(he7,''String'');',...'dsolve_1=dsolve(f,''x'');', ...'set(he8,''string'',char(dsolve_1));'];COMM7=['f=get(he7,''String'');',...'ezplot(f);'];COMM8=['g=get(he8,''String'');',...'ezplot(g);'];uicontrol(hf,'Style','Push','Position',[0.02,0.9,0.11,0.06],...'String','求导','Units','normalized','Call',COMM1); uicontrol(hf,'Style','Text','Position',[0.17,0.85,0.08,0.1],...'Units','normalized','Horizontal','center',...'String','阶数','Back',[0,1,1]);he1=uicontrol(hf,'Style','Edit','Position',[0.25,0.9,0.15,0.06],...'Units','normalized','Back',[0,1,0]);uicontrol(hf,'Style','Push','Position',[0.02,0.72,0.13,0.06],...'String','求极限','Units','normalized','Call',COMM2);uicontrol(hf,'Style','Text','Position',[0.17,0.67,0.08,0.1],...'Units','normalized','Horizontal','center',...'String','极限点','Back',[0,1,1]);he2=uicontrol(hf,'Style','Edit','Position',[0.25,0.72,0.15,0.06],...'Units','normalized','Back',[0,1,0]);uicontrol(hf,'Style','Push','Position',[0.02,0.58,0.13,0.06],...'String','不定积分','Units','normalized','Call',COMM3);uicontrol(hf,'Style','Push','Position',[0.02,0.45,0.13,0.06],...'String','级数求和','Units','normalized','Call',COMM4);uicontrol(hf,'Style','Text','Position',[0.31,0.44,0.06,0.06],...'Units','normalized','Horizontal','center',...'String','上限','Back',[0,1,1]);he5=uicontrol(hf,'Style','Edit','Position',[0.38,0.45,0.06,0.06],...'Units','normalized','Back',[0,1,0]);uicontrol(hf,'Style','Text','Position',[0.17,0.44,0.06,0.06],...'Units','normalized','Horizontal','center',...'String','下限','Back',[0,1,1]);he3=uicontrol(hf,'Style','Edit','Position',[0.24,0.45,0.06,0.06],...'Units','normalized','Back',[0,1,0]);uicontrol(hf,'Style','Push','Position',[0.02,0.32,0.13,0.06],...'String','求定积分','Units','normalized','Call',COMM5);uicontrol(hf,'Style','Text','Position',[0.31,0.31,0.06,0.06],...'Units','normalized','Horizontal','center',...'String','上限','Back',[0,1,1]);he6=uicontrol(hf,'Style','Edit','Position',[0.38,0.32,0.06,0.06],...'Units','normalized','Back',[0,1,0]);uicontrol(hf,'Style','Text','Position',[0.17,0.3,0.08,0.06],...'Units','normalized','Horizontal','center',...'String','下限','Back',[0,1,1]);he4=uicontrol(hf,'Style','Edit','Position',[0.24,0.32,0.06,0.06],...'Units','normalized','Back',[0,1,0]);uicontrol(hf,'Style','Push','Position',[0.02,0.2,0.16,0.06],...'String','解微分方程','Units','normalized','Call',COMM6);uicontrol(hf,'Style','text','Position',[0.48,0.9,0.13,0.06],...'String','原函数','Units','normalized');he7=uicontrol(hf,'Style','edit','Position',[0.65,0.9,0.30,0.06],...'String','','Units','normalized','Back',[0,1,0]);uicontrol(hf,'Style','text','Position',[0.48,0.77,0.13,0.06],...'String','结果函数','Units','normalized');he8=uicontrol(hf,'Style','text','Position',[0.65,0.77,0.30,0.06],...'String','','Units','normalized','Back',[0,1,0]);h_axes=axes('position',[0.55,0.2,0.4,0.5]);uicontrol(hf,'Style','push','Position',[0.58,0.02,0.13,0.06],...'String','初始绘图','Units','normalized','call',COMM7);uicontrol(hf,'Style','push','Position',[0.80,0.02,0.13,0.06],...'String','结果绘图','Units','normalized','call',COMM8);uicontrol(hf,'Style','Push','Position',[0.02,0.02,0.08,0.06],...'String','退出','Units','normalized','Call', 'close');。

MatlabGUI程序编制技巧

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,为了在调用完之后,程序可以返回主界面(连同新的变量),必须将主界面的句柄作为参数传递给设置界面函数。

matlab-GUI设计中常用控件格式

matlab-GUI设计中常用控件格式

matlab-GUI设计中常用控件格式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一样。

在控件要销毁,但是被毁灭之前执行这个函数名下的代码。

貌似“真的要退出吗”这一类就是写在这里。

MATLAB(GUI)编程

MATLAB(GUI)编程

MATLAB图像用户界面1、GUI入门示例(1)3种方式打开GUIDE开发环境:●在指令窗中运行guide指令。

●菜单:新建—>GUI。

●使用GUIDE按钮。

(2)使控件、组件图标带其名称一起显示,应采用以下步骤:●选择界面编辑器菜单项:File > Preference,引出GUIDE选项设置界面。

●勾选“show names in component palette”项。

(3)界面组件●GUI界面右下角“小黑块”,即“界面缩放句柄”●轴:点击“轴”图标,然后在工作区中的适当位置,拉出适当大小的“轴位框”,以供绘制响应曲线使用。

●静态文本框:;●可编辑文本框:;(4)界面组件参数的设置:●在”窗属性编辑器“设置:Resize on %图形窗是否可缩放Uints normalized %采用“归一化”单位计量窗口大小●“静态文本框”设置:FontUnits normalized %采用相对度量单位,缩放时保持字体比例FontSize 0.5 %字体大小String 归一化二阶系统的阶跃响应%Units normalized %采用相对度量单位,缩放时保持该区比例●轴:Box on %轴框封闭Units normalized %采用相对度量单位,缩放时保持比例XLim [0,15] %X轴范围YLim [0,2] %Y轴范围●可编辑文本框:FontUnits normalized %采用相对度量单位,缩放时保持字体比例FontSize 0.5 %字体大小String %删除缺省字符Units normalized %采用相对度量单位,缩放时保持该区比例(5)初步设计界面的保存在进行保存时,在指定的文件夹下会同时生成2个伴生文件ex0801.m和ex0801.fig。

(6)回调程序的编写Ex0801.m所包含的回调子函数函数体是空的。

插入下面代码:function edit1_Callback(hObject, eventdata, handles)% hObject handle to edit1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of edit1 as text% str2double(get(hObject,'String')) returns contents of edit1 as a doubleget(hObject,'String'); %从编辑框读取输入字符zeta=str2double(get(hObject,'String')); %把字符转换成双精度数handles.t=0:0.05:15; %定义时间采样数组handles.y=step(tf(1,[1,2*zeta,1]),handles.t); %计算响应cla %清空坐标轴line(handles.t,handles.y) %在已有轴上绘制曲线。

MATLAB实用教程GUI

MATLAB实用教程GUI

MATLAB实用教程GUIMATLAB是一种功能强大的数学软件,广泛用于科学和工程领域的数据分析、可视化、建模和仿真。

在MATLAB中,GUI(Graphical User Interface,图形用户界面)是一种用于创建交互式应用程序的工具,可以使用户通过图形化界面来操作和控制程序。

本教程将介绍如何使用MATLAB创建GUI应用程序,包括创建各种控件(按钮、文本框、下拉菜单等)、设计布局、添加回调函数等。

通过学习本教程,您将了解如何利用MATLAB的强大功能和易用的GUI设计工具来创建自己的交互式应用程序。

1.创建GUI应用程序要创建一个GUI应用程序,首先需要打开MATLAB并选择新建GUI应用程序。

在弹出的界面中,可以选择创建一个新的Figure或Panel,然后可以在面板上添加各种控件。

可以通过拖动和放置控件来设计界面布局,然后可以对控件进行自定义设置,比如修改文本内容、颜色、大小等。

2.添加控件MATLAB提供了各种控件,用于实现不同的功能。

常见的控件包括按钮、文本框、下拉菜单、滑块等。

可以通过在界面上拖动和放置这些控件来创建自己的GUI应用程序。

在添加控件时,可以设置控件的属性,比如位置、大小、颜色、文本内容等。

3.设计布局设计布局是创建GUI应用程序的重要部分。

可以通过调整控件的位置、大小和对齐方式来设计一个美观的界面布局。

MATLAB提供了多种布局管理器,比如Grid布局、Box布局、GridBag布局等,可以根据需要选择合适的布局方式来设计界面。

4.编写回调函数回调函数是GUI应用程序的关键部分,用于响应用户的操作。

可以为每个控件添加回调函数,当用户操作控件时,回调函数将被触发。

可以在回调函数中实现各种功能,比如计算结果、数据处理、图形绘制等。

通过编写回调函数,可以实现程序的交互性和实用性。

5.运行应用程序创建GUI应用程序后,可以点击“运行”按钮来运行应用程序。

在运行过程中,可以与界面上的控件进行交互,触发回调函数并实现相应功能。

Matlab中的GUI设计技巧和实现方法

Matlab中的GUI设计技巧和实现方法

Matlab中的GUI设计技巧和实现方法一、引言Matlab作为一款功能强大的科学计算软件,其GUI设计技巧和实现方法十分重要。

本文将介绍一些常用的GUI设计技巧和实现方法,并结合实际案例进行分析和讲解,旨在为读者提供一些参考和帮助。

二、Matlab中的GUI设计基础在开始GUI设计之前,需要先了解Matlab中的一些基础知识和概念。

Matlab 提供了一种称为GUIDE(Graphical User Interface Development Environment)的工具,可以帮助用户快速创建GUI界面。

通过GUIDE,用户可以方便地添加各种组件,如按钮、文本框、下拉列表等,并为这些组件添加相应的回调函数。

三、GUI界面的布局和美化1. 布局在设计GUI界面时,布局是一个很重要的方面。

合理的布局可以提高用户的使用体验。

Matlab中的GUI界面布局可以通过使用容器组件来实现,如面板(uipanel)和网格布局管理器(gridbaglayoutmanager)。

面板可以将相关的组件放在一起,网格布局管理器可以帮助用户实现自动布局。

2. 美化为了让GUI界面更加美观和易于使用,可以通过一些美化技巧来改善界面的外观。

例如可以使用颜色、字体和图标等元素来增加界面的可读性和吸引力。

此外,还可以使用一些动画效果来增强用户体验。

四、用户交互和数据处理1. 用户交互GUI界面的设计目的是提供给用户与程序进行交互的方式,因此用户交互十分重要。

可以通过一些交互方式来实现用户的操作,如按钮或菜单等。

同时,还可以使用一些交互控件,如滑块、复选框和下拉列表等,来帮助用户进行选择和输入。

2. 数据处理用户在GUI界面中输入的数据通常需要进行处理。

Matlab提供了丰富的数学和数据处理函数来处理各种数据。

通过编写相应的回调函数,可以实现对输入数据的处理和计算,并将结果显示在界面上。

五、实例分析:基于Matlab的图像处理应用为了更好地理解和应用GUI设计技巧和实现方法,我们以基于Matlab的图像处理应用为例进行实例分析。

Matlab的gui界面(按纽制作)源代码

Matlab的gui界面(按纽制作)源代码

Matlab的gui界面(按纽制作)源代码:function varargout = untitled(varargin)% UNTITLED M-file for untitled.fig% UNTITLED, by itself, creates a new UNTITLED or raises the existing% singleton*.%% H = UNTITLED returns the handle to a new UNTITLED or the handle to% the existing singleton*.%% UNTITLED('CALLBACK',hObject,eventData,handles,...) calls the local% function named CALLBACK in UNTITLED.M with the given input arguments. %% UNTITLED('Property','Value',...) creates a new UNTITLED or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before untitled_OpeningFunction gets called. An% unrecognized property name or invalid value makes property application % stop. All inputs are passed to untitled_OpeningFcn via varargin.%% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)".%% See also: GUIDE, GUIDATA, GUIHANDLES% Copyright 2002-2003 The MathWorks, Inc.% Edit the above text to modify the response to help untitled% Last Modified by GUIDE v2.5 12-Mar-2010 09:49:56% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct('gui_Name', mfilename, ...'gui_Singleton', gui_Singleton, ...'gui_OpeningFcn', @untitled_OpeningFcn, ...'gui_OutputFcn', @untitled_OutputFcn, ...'gui_LayoutFcn', [] , ...'gui_Callback', []);if nargin && ischar(varargin{1})gui_State.gui_Callback = str2func(varargin{1});if nargout[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); elsegui_mainfcn(gui_State, varargin{:});end% End initialization code - DO NOT EDIT% --- Executes just before untitled is made visible.function untitled_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn.% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% varargin command line arguments to untitled (see VARARGIN)% Choose default command line output for untitledhandles.output = hObject;% Update handles structureguidata(hObject, handles);% UIWAIT makes untitled wait for user response (see UIRESUME)% uiwait(handles.figure1);% --- Outputs from this function are returned to the command line. function varargout = untitled_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT);% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% Get default command line output from handles structurevarargout{1} = handles.output;% --- Executes on button press in pushbutton1.function pushbutton1_Callback(hObject, eventdata, handles)% hObject handle to pushbutton1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% --- Executes on button press in pushbutton2.function pushbutton2_Callback(hObject, eventdata, handles)% hObject handle to pushbutton2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA。

MATLABGUI程序设计

MATLABGUI程序设计

MATLABGUI程序设计在MATLAB中,可以使用GUIDE工具箱来创建GUI程序。

GUIDE是MATLAB集成开发环境(IDE)中的一个工具,可以通过简单的拖放和布局来创建GUI界面。

接下来,将介绍一些在MATLAB中设计GUI程序的常用步骤。

首先,打开MATLAB并启动GUIDE工具。

然后,选择“新建GUI”选项,这将打开一个空白的GUI界面。

在GUI界面中,可以添加各种控件,如按钮、文本框、复选框等。

可以使用鼠标拖放这些控件,并在界面上适当位置上放置它们。

一旦添加了控件,可以通过修改属性来自定义每个控件的外观和行为。

例如,可以设置按钮的文本、颜色和回调函数,以便在按钮被点击时执行相应的操作。

除了修改控件属性,还可以为GUI程序添加回调函数。

回调函数是在特定事件发生时执行的函数,如按钮点击、文本框输入等。

通过为控件设置回调函数,可以通过用户在GUI界面上的操作来触发相应的操作。

在编写回调函数时,可以使用MATLAB的各种功能和命令来实现所需的功能。

例如,可以调用数值计算函数、数据分析函数或数据可视化函数来处理用户的输入并呈现结果。

完成GUI程序的设计后,可以点击GUIDE工具栏上的“运行”按钮来运行程序。

此时,MATLAB将根据设计的GUI界面显示出来,并且可以与用户进行交互。

总结起来,MATLAB的GUI程序设计非常强大和灵活。

通过使用GUIDE 工具箱和MATLAB的各种功能,可以轻松地创建一个具有各种功能和交互性的GUI程序。

无论是进行数据分析、图像处理还是模拟实验等,MATLAB 的GUI程序设计都是一个非常有用和方便的工具。

快速入门Matlab GUI编程

快速入门Matlab GUI编程

快速入门Matlab GUI编程Matlab是一种功能强大的数值计算与数据可视化软件,广泛应用于科学研究与工程领域。

GUI编程,即图形用户界面编程,允许用户通过直观的图形界面与程序进行交互,而不需要在命令行中输入指令。

本文将介绍如何快速入门Matlab GUI 编程,并通过一些实例来演示其基本用法。

1. GUI的基本概念与创建方式GUI,全称为Graphical User Interface,即图形用户界面,它提供了一种直观友好的交互方式。

在Matlab中,可以使用GUIDE工具箱来创建GUI界面。

打开Matlab界面,点击主菜单中的“Apps”选项,然后选择“GUIDE”工具箱。

接下来,可以选择创建空白界面或者从现有的模板中选择合适的界面。

2. GUI的基本组件与布局管理在GUI界面中,可以添加各种组件,如按钮、文本框、滑动条等,来实现与用户的交互。

Matlab提供了丰富的组件库,可以根据需要进行选择和使用。

在GUIDE工具箱中,可以通过简单的拖拽和放置来添加组件,然后使用布局管理器对它们进行合理的排列和布局。

3. 事件与回调函数GUI编程中,事件是指用户在界面上所进行的操作,如点击按钮、拖动滑动条等。

每个事件都会触发一个相应的回调函数,用于处理相应的操作逻辑。

在Matlab中,可以通过GUIDE工具箱中的回调编辑器来创建和编辑回调函数。

回调函数可以是Matlab代码脚本,也可以是自定义的函数。

4. 数据传递与处理在GUI编程中,通常需要将用户输入的数据传递给后台的计算模块,并将计算结果返回给界面进行展示。

为了实现数据的传递与处理,可以使用全局变量、共享数据对象或者消息传递等方式。

Matlab提供了丰富的数据处理函数和工具,可以方便地进行数据处理与分析。

5. 图形绘制与可视化Matlab作为一种数据可视化软件,提供了丰富的绘图函数和工具,可以轻松地创建各种图形。

在GUI界面中,可以通过绘图函数将计算结果以图形的形式显示出来,并通过交互操作来进行进一步的探索和分析。

MATLAB中的GUI程序设计

MATLAB中的GUI程序设计

MATLAB中的GUI程序设计MATLAB是一种功能强大的编程语言,它能够进行数据处理、数值计算、图形绘制等多种操作。

在MATLAB中,我们可以通过编写GUI程序来实现更加友好和交互性的界面,使得用户可以直观地进行操作和获得结果。

下面将介绍MATLAB中的GUI程序设计。

在MATLAB中,GUI程序的编写一般分为以下几个步骤:界面设计、回调函数编写和程序调试。

界面设计是GUI程序设计的第一步,我们可以通过MATLAB提供的GUIDE工具来完成。

GUIDE是一个图形化的界面设计工具,可以通过拖拽、调整控件位置和属性等方式来设计界面。

在GUIDE中,我们可以选择界面的布局方式,如水平布局、垂直布局、表格布局等,还可以选择不同的控件,如按钮、文本框、复选框、滑块等。

在界面设计完成后,我们需要编写回调函数来实现不同控件的事件响应。

回调函数是指当用户进行其中一种操作时,界面会调用相应的函数来响应这个操作。

例如,当用户点击按钮时,界面会调用按钮的回调函数来执行相应的操作。

在MATLAB中,回调函数通常以"Callback"结尾并附加到相应的控件上。

在回调函数中,我们可以编写代码来实现各种功能。

例如,可以在按钮的回调函数中编写代码来处理用户的点击事件,可以在文本框的回调函数中编写代码来获取用户输入的内容等。

回调函数中的代码可以调用MATLAB提供的各种函数来完成相应的功能,也可以调用自定义的函数来进行更复杂的操作。

编写完回调函数后,我们需要对整个程序进行调试。

MATLAB提供了调试器功能,可以帮助我们定位程序中的错误和调试逻辑。

我们可以通过设置断点、单步执行、观察变量等方式来调试程序,以确保程序能够正常运行并得到正确的结果。

总之,MATLAB中的GUI程序设计可以帮助我们实现更加友好、交互性和可视化的界面。

通过界面设计和回调函数编写,我们可以实现各种功能,如数据可视化、图形绘制、物理模拟等。

Matlab-GUI编程实例(加法器)

Matlab-GUI编程实例(加法器)
2、设置对象的属性----set
格式set(h,’属性名1’, ’属性名值1’,’属性名2’, பைடு நூலகம்属性名值2’ …)
三、实验步骤
一.首先我们新建一个GUI文件:File/New/GUI,选择Blank GUI(Default),如下图所示
二.进入GUI开发环境以后添加两个编辑文本框,5个静态文本框和一个按钮,布置如下图所示:
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
点击上图所示绿色三角形:
functionedit1_Callback(hObject, eventdata, handles)
% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
然后在上面这段代码的下面插入如下代码:
四.为edit2_Callback添加同样一段代码。
五.现在我们为计算按钮添加代码来实现把数据1和数据2相加的目的。用上面三的同样的方法在m文件中找到pushbutton1_Callback代码段如下:
functionpushbutton1_Callback(hObject, eventdata, handles)
(3)第三个“Edit Text3”的“string”改为“0”,“tag”为“answer”

MATLAB的GUI程序设计

MATLAB的GUI程序设计

MATLAB的GUI程序设计咱来说说 MATLAB 的 GUI 程序设计,这玩意儿可有意思啦!我记得有一次,我带的一个学生,叫小李,特别苦恼地来找我。

他说:“老师啊,这 MATLAB 的 GUI 程序设计太难搞了,我脑袋都快炸了!”我就笑着跟他说:“别着急,咱们一步步来。

”那啥是 MATLAB 的 GUI 程序设计呢?简单来说,就是给MATLAB 这个强大的工具穿上一件好看又好用的“外衣”,让用户能更方便、更直观地和它打交道。

比如说,你想做一个计算数学题的小工具。

通过 GUI 程序设计,你可以弄出漂亮的输入框,让用户输入数字;再弄几个按钮,一个是“计算”,一个是“清除”啥的。

然后,计算的结果能清楚地显示在一个专门的地方。

要设计好这个 GUI ,第一步得先想好要实现啥功能。

就像盖房子,得先有个设计图。

是做个图像处理的工具,还是搞个数据分析的小软件?想好了,才能动手。

然后就是创建界面啦。

在 MATLAB 里,有专门的命令和工具来做这个。

比如说,‘uicontrol’ 这个命令就能创建各种控件,像按钮、文本框、下拉菜单等等。

你可以设置它们的大小、位置、颜色,怎么好看怎么来。

控件弄好了,还得给它们加上功能。

这就好比给每个控件都赋予灵魂。

比如说,点击“计算”按钮,就得让程序知道要去做计算的事儿,还得把结果显示出来。

这就得写回调函数啦。

回调函数就像是每个控件的“大脑”。

当有操作发生时,它就开始工作。

写回调函数的时候,可得仔细,逻辑要清晰,不然程序就会乱套。

还有布局管理也很重要。

界面上的控件不能乱摆,得整整齐齐,看着舒服。

MATLAB 提供了一些布局的方法,像‘gridlayout’ 、‘flowlayout’ ,能帮咱们轻松搞定布局。

在设计过程中,还得注意用户体验。

按钮的名字要简单易懂,提示信息要清楚明白。

别让用户摸不着头脑。

就像我那个学生小李,在我的指导下,一点点弄明白了。

最后做出了一个能帮他快速计算物理实验数据的小工具,高兴得不行。

MATLAB环境下的GUI编程

MATLAB环境下的GUI编程

第21卷 第6期内蒙古民族大学学报(自然科学版)Vol.21 No.6 2006年12月Jour nal of Inner M ongolia U niversity for N atio nalities Dec.2006M AT LAB环境下的GU I编程y徐俊文1,王 强2,金 珩1(1.内蒙古师范大学数学科学院,内蒙古呼和浩特 010022;2.内蒙古师范大学计算机与信息工程学院,内蒙古呼和浩特 010022)摘 要:本文介绍了在图形用户界面的软件开发过程中界面设计的原则,应用M AT L AB语言,从设计图形用户界面的框架结构和设置其控件属性入手,着重说明了M AT LA B语言进行的图形用户界面设计时的若干相关内容的处理要点.关键词:M AT L AB;图形用户界面;控件设计;回调函数中图分类号:T P311.56 文献标识码:A 文章编号:1671-0185(2006)06-0640-02GUI Programming in MATLAB EnvironmentXU Jun-w en1,WANG Qiang2,JIN Heng1(1.College of M at hematical Science,Inner M ongolia N ormal U niversity,Huhhot010022,China;2.Co llege of Computer&Information Engineering,Inner M ongolia N ormal U niv ersity,Huhhot010022,China)Abstract:T his paper introduced the principle that the interface is designed in the course of GUIsoftw are development,used MATLAB language,started w ith desig ning the fram e structure ofthe graphical user interface and setting up its controlling com ponent,chiefly demonstrated themain point of several relevant content w hen design the g raphical user interface using the MAT-LAB language.Key words:MATLAB;Graphical User Interface(GUI);Controlling component design;Callbackfunction1 图形用户界面的设计原则使用图形用户界面主要是为了达到以下目的:(1)编写一个需多次反复使用的实用函数,菜单、按钮、文本框作为输入方法具有意义.(2)编写函数或开发应用程序供别人使用.(3)创建一个过程、技术或分析方法的交互式示例.为了实现这一目的,一个优良的图形用户界面应具备以下特性:(1)可使用性:包括以下几点:使用的简单性、用户界面中的术语标准化和一致性、拥有帮助功能、快速的系统响应和较低的系统成本、用户界面应具有容错能力.(2)灵活性:包括以下几点:算法的可隐可显性、用户可以根据需要制定和修改界面方式、能够按照用户的希望和需要,提供不同详细程度的系统响应信息、与其它软件系统应有标准的界面.(3)复杂性和可靠性:界面的复杂性指的是用户界面的规模和组织的复杂程度.在完成预定功能的前提下,应使用户界面越简单越好.但不是把所有功能和界面安排成线性序列就一定简单.用户界面的可靠性是指无故障使用的间隔时间.用户界面应能保证用户正确、可靠地使用系统,保证有关程序和数据的安全性.2 图形用户界面设计过程2.1 界面设计初步规划 设计一个应用程序界面时,应该先对整个系统界面进行初步规划.考虑应该使用单文档还是多文档样式?需要多少个不同的窗体?菜单中将包含什么命令?要不要使用工具栏重复菜单的功能?提供什么对话框与用户交互?需要提供什么样的帮助?界面设计也需要考虑应用程序的目的是什么、预期的用户是谁等问题.经常使用的应用程序和偶尔使用的辅助程序要区别对待,用来显示信息的应用程序与用来收集信息的应用程序也应有所不同.目标是针对y收稿日期:2006-08-25作者简介:徐俊文(1974-),男,内蒙古扎赉特旗人,讲师,硕士.初学者的应用程序,界面设计要求简单明了,而针对有经验用户却可以复杂一些.2.2 设计M AT L AB 的GU I 在MA T LAB 中提供了图形用户界面设计向导,利用该向导,用户可以非常方便和快捷地设计一个图形用户界面,如同在一张纸上绘图.可以把图形界面的外观,包括所有的按钮以及图形的位置确定下来,然后就可以利用M AT LA B 的回调程序编辑器来编写其函数代码,从而可以使该图形界面完成预定的任务.MA T LAB 中的图形用户界面设计向导包括以下5个工具:(1)对象设计编辑器(L ayout Editor):提供了9种不同的图形控制对象和一个坐标轴对象,可以使用户按照自己的需要在图形上非常方便地添加和删除图形控制对象;(2)菜单编辑器(M enu Editor):可创建、设置、修改下拉式菜单和内容式菜单;(3)对象属性编辑器(Propert y Editor):可查看每个对象的属性值,也可修改、设置对象的属性值;(4)位置调整工具(A lignment T ool):用来调整图形窗口中各个图形对象的位置的工具.(5)对象浏览编辑器(Object Browser ):可观察当前设计阶段的各个句柄图形对象.2.2.1 创建菜单 菜单项的设置可以通过uimenu 函数来完成,该函数的调用格式为:menuhandle=uimenu(w indowshan -dle, PropertyN ame1 ,Propert yValue1, )其中,w indowshandle 是创建的菜单所在的图形窗口的句柄值或者子菜单所属的主菜单的句柄值;PropertyN ame1是菜单的某个属性的属性名,Property Value1是与菜单属性名相对应的属性值.uimenu 函数最基本的属性包括:菜单名称L abel,回调函数Callback,使能状态enable 等.利用GU I 设计工具也可创建菜单:首先输入G uide 打开对象设计编辑器,然后选择Layout 菜单下的M enu Editor 子菜单,就可以打开菜单编辑器.利用菜单编辑器创建菜单更加方便、灵活.2.2.2 控件的设计 在绝大多数的图形用户界面中都包含控件.控件是图形对象,它与菜单一起用于建立图形用户界面.通过使用各种类型的控件,可以建立起操作简便,功能强大的图形用户界面.M AT L AB 提供了10种控件对象:复选框(Check box es)、可编辑文本框(Editable tex t)、框架(F rames)、列表框(L ist boxes)、弹出式菜单(Pop-up menus)、命令按钮(Push buttons)、单选按钮(Radio butto ns)、滑标(Sliders)、静态文本框(Static text)、开关按钮(T og gle buttons).与菜单对象一样,可以通过命令行方式与GU I 设计工具两种方式来建立控件.在命令行方式下,可以通过函数uicontrol 来建立控件对象.该函数的调用格式为:controlhandle=uimenu( Proper tyN ame1 ,P ropertyV alue1, )其中,controlhandle 是创建的控件对象的句柄值;PropertyN ame1是控件的某个属性的属性名,P ropertyV alue1是与属性名相对应的属性值.利用controlhandle 函数的Style 属性可以创建上述10种控件中任意一种.利用GU I 设计工具也可创建控件:首先输入Guide 打开对象设计编辑器,然后利用向导控制面板可以方便地创建任何一种控件,而且通过对象属性查看器可以方便地修改、设置创建的控件的属性值.2.2.3 对象属性编辑器 在GU I 设计向导控制面板中按下Property Editor 按钮可打开对象属性编辑器.对象属性编辑器的界面分为2个部分:上部是图形对象列表.它列出了所有根对象下的子对象.包括每个图形窗口对象以及窗口对象中的各控件对象.用户可以在此选择自己所需要设置的图形对象.下部的是图形对象的属性列表.这里列出了用户所选中的图形对象的所有属性名称以及属性的值.当用户选中一个属性,则在两个文本框中会分别显示出属性的名称和当前的属性值.可以利用此对其属性的修改.2.2.4 回调函数的编写 回调程序编辑器的打开有如下方法:(1)在GU I 设计向导控制面板中按下CallbackEditor 按钮.(2)在图形窗口中的T ools 菜单下选择CallbackEditor 选项.一个GU I 应用软件的实现,最终是要通过对控件对象的操作来完成,而这些操作必定是通过M AT LAB 中函数代码的执行来完成的.函数代码的编制既可以通过编写回调函数完成,然后在编写时可以把该控件的函数代码直接书写在 CallBack 中;也可以把函数代码放在一个自定义的.M 文件中,而在 Cal-l Back 中只将其文件名写上.在编写回调函数时,handles 是一个特别有用的结构数组,它以图形窗口中的所有对象的T ag 值为域,存储着所有图形对象的句柄,通过handles 可以方便地进行数据调用.再利用所有对象都具有的U serData 属性来进行数据存储、传递,编写一个完美的回调函数就是一件轻而易举的事了.3 结束语MA T LAB 是一种高性能的用于工程计算的编程软件.它的功能强大,并成为受欢迎的一种语言,其应用范围越来越广泛.在很多国家的设计研究单位和工业部门,也已成为研究和解决各种具体工程问题的一种标准软件.在欧美等国家的高等院校中,M AT L AB 已经成为诸多课程的基本教学和研究工具,在GU I 编程方面也有其独特的一面.参 考 文 献1 苏金明,阮沈勇.M AT L AB 6.1实用指南 M .北京:电子工业出版社,2002.2 姚东.M A T LAB 命令大全 M .北京:人民邮电出版社,2000.3 郑阿奇主编,曹弋,赵阳编著.MA T LAB 实用教程 M .北京:电子工业出版社,2004. 责任编辑 郑 瑛 641第6期徐俊文等:MAT LAB 环境下的GU I 编程。

matlab-GUI程序设计

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-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 程序设计

第七章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程序设计

课题三MATLAB的GUI程序设计图形用户界面(GUI)则是由窗口、光标、按键、菜单、文字说明等对象构成的一个用户界面。

用户通过一定的方法(如鼠标或键盘)选择、激活这些图形对象,使计算机产生某种动作或变化,比如实现计算、绘图等。

Matlab中设计图形用户界面的方法有两种:使用可视化的界面环境和通过编写程序。

我要做的主要通过使用可视化的界面环境来实现GUI界面的设计1.首先我们新建一个GUI文件:File/New/GUI 如下图所示选择Blank GUI(Default)2.在界面上安装8个编辑文本框、4个静态文本框与2个push putton,如图所示:3.可以双击每个模块并设置其属性值,修改font size的大小为12,push button1中的string 修改为“+”,push button1中的string修改为“=”,并且设置8个编辑文本框、4个静态文本框的string为空,设置4个静态文本框的颜色为红色,设置完之后如图4.保存至桌面,文件名为c2,保存之后跳到m文件编辑界面,如图:5.添加程序。

在function pushbutton2_Callback(hObject, eventdata, handles)下编写如下程序:s1=str2double(get(handles.edit1,'String')); %把edit1里面的字符赋给s1s2=str2double(get(handles.edit5,'String')); %把edit5里面的字符赋给s2set(handles.text1,'String',s1+s2); %s1和s2求和,并以字符串的形式保存到text1中s3=str2double(get(handles.edit2,'String')); %把edit2里面的字符赋给s3s4=str2double(get(handles.edit6,'String')); %把edit6里面的字符赋给s4set(handles.text2,'String',s3+s4); %s3和s4求和,并以字符串的形式保存到text2中s5=str2double(get(handles.edit3,'String'));s6=str2double(get(handles.edit7,'String'));set(handles.text3,'String',s5+s6);s7=str2double(get(handles.edit4,'String'));s8=str2double(get(handles.edit8,'String'));set(handles.text4,'String',s7+s8);6.在m编辑器界面运行,或在GUI界面运行则会出现如图界面:7.在方框中随便填入矩阵,例如[1 1;2 2]和[1 2;3 4],点一下等于将会得到两个二维矩阵的和。

第八章 MATLAB的GUI 程序设计

第八章 MATLAB的GUI 程序设计

第八章MATLAB的GUI 程序设计一.控件对象及属性1.GUI控件对象类型控件对象是事件响应的图形界面对象。

控件对象及其功能:(表7—1)2.控件对象的描述(1)按钮:执行某种特定功能或操作;(2)开关按钮:产生一个动作并指示一个二进制状态;(3)单选框:单个的单选框用来在两种状态之间切换,多个单选框组成一个单选框组时,用户只能在一组状态中选择单一的状态,或称为单选项;(4)复选框:单个的复选框用来在两种状态之间切换,多个复选框组成一个复选框组时,可使用户在一组状态中作组合式的选择,或称为多选项;(5)文本编辑器:用来使用键盘输入字符串的值,可以对编辑框中的内容进行编辑、删除和替换等操作;(6)静态文本框:仅仅用于显示单行的说明文字;(7)滚动条:可输入指定范围的数量值;(8)边框:在图形窗口圈出一块区域;(9)列表框:在其中定义一系列可供选择的字符串;(10)弹出式菜单:让用户从一列菜单项中选择一项作为参数输入;(11)坐标轴:用于显示图形和图象3.控件对象的属性表7—2 控件对象的公共属性表7—3控件对象的基本控制属性表7—4控件对象的修饰控制属性表7—5 控件对象的辅助属性表7—6 Callback管理属性二.GUI开发环境(GUI Development Environment, GUIDE) MATLAB提供了一套可视化的创建图形窗口的工具,包括:*布局编辑器-------在图形窗口中加入及安排对象*几何排列工具-----调整各对象相互之间的几何关系和位置*属性编辑器-----查询并设置属性值*对象浏览器-----获得当前MATLAB窗口中句柄图形对象的分级表*菜单编辑器-----建立窗口菜单条的菜单和任何构成布局的弹出菜单用guide命令可以启动用户界面的控制面板:布局编辑器,使用用户界面开发环境可方便的创建GUI应用程序, 它可以根据用户设计的GUI布局,自动生成M文件的框架,用户使用这一框架编制自己的应用程序。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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','BadInput','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----------附:所以在这里,如果要拿到button groups本身的话,就用handles.它的tag名中间一个点。

--------------------------------------------------Axes-------------它是用来画图的,可以说是一块画布。

它并不算是严格意义上的控件,但可以让用户在它的区域上点击或者移动鼠标时(看你是放在什么callback下了)执行一定的代码。

相关文档
最新文档