Matlab GUI 基础(2):M文件
来源:互联网 发布:mysql添加字段 编辑:程序博客网 时间:2024/06/07 21:54
GUIDE生成的M文件,包含主函数,Opening函数、Output函数和各控件的回调函数。
一、M文件默认函数
1、主函数框架如下所示:
function varargout = text1(varargin)gui_Singleton = 1;gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @text1_OpeningFcn, ... 'gui_OutputFcn', @text1_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []);if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1});endif nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});else gui_mainfcn(gui_State, varargin{:});end
主函数主要是用于初始化操作,一般不要修改。
gui_Singleton = 1;表示只能生成一个 figure;
第一行是函数、输入输出参数表;
第四行、第五行是输入输出函数。
2、Opening 函数框架如下所示:
在 GUI 开始运行但还不可见的时候执行,主要进行一些初始化操作。
如果定义了 global 变量,亦可以在此处进行初始化。
function text1_OpeningFcn(hObject, eventdata, handles, varargin)handles.output = hObject;guidata(hObject, handles);% uiwait(handles.figure1);
3、Output 函数框架如下所示:
可以输出数据到命令行。
function varargout = text1_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output;
4、执行顺序
GUI 文件执行函数的顺序是:
并且,Opening 函数 、 Output 函数只执行在开始运行时执行一次。
若要根据用户的要求,输出到命令行,可以使用暂停和就行函数:
具体如下
(1)添加 uiwait 到 Opening 函数中(如上,uiwait(handles.figure1);)
(2)在期望相应的回调函数中,更新 handles.output 值,并执行 uiresume。
二、回调函数
回调函数的声明是:
function Tag_函数名(hObject, eventdata, handles)
如 push button 的 callback 回调函数为:
function pushbutton1_Callback(hObject, eventdata, handles)
hObject, 当前 figure 句柄
eventdata, 附加参数,一般用不到
handles,当前 GUI 句柄,包含所有 GUI 对象的信息
1、类型。
每个回调函数都有一个触发机制,导致其被调用。回调函数的类型包括:
Callback,控件被触发是执行
CreatFun,对象创建之后,显示之前执行
DeleteFun,删除对象时执行
KeyPressFun,按下按键时执行
KeyReleaseFun,松开按键时执行
ButtonDownFun,对象5像素区域内单击时执行
CellEditCallback,编辑表格单元格时执行
CellSelectinCallback,鼠标选中表格单元格时执行
ClickedCallback,toggle或push 单击时执行
OffCallback,toggle 为 on 时执行
OnCallback,toggle 为 off 时执行
CloseRequestFun,figure关闭时执行
ResizeFun,
SelectionChangeFun,
2、中断
Interruptible,
BusyActive,
当A执行时,B 试图中断它;若A的 Interruptible 为 on,B排队等候执行;当 A的 Interruptible 为 off时,若 BusyActive 为 cancel,则抛弃 B 操作,若 BusyActive 为 queue,则 B 排队等候执行。
(1)当前回调函数执行完,即 A 执行完,就执行 B;
(2)B 中含有:drawnow、figure、getframe、pause、waitfor 时,立即停止A,执行B
- Matlab GUI 基础(2):M文件
- Matlab---GUI界面编程2(m文件纯代码实现)
- Matlab----GUI编程-登录框实现(纯m文件)
- 【matlab】----GUI编程-登录框实现(纯m文件)
- M文件实现GUI
- matlab GUI 编程——mcc转换m文件到应用程序
- matlab的M文件
- matlab【M文件】
- MATLAB的M文件
- matlab startup.m文件
- Matlab---M文件概述
- Matlab的M文件
- M文件程序设计(matlab)
- Matlab GUI图像图像基础
- GUI存储文件uiputfile matlab
- 批处理文件打开matlab gui文件
- Matlab .m文件的命名
- matlab r2001b 关联M文件
- 构造散列函数的方法
- skip-grant-tables 修改linux的mysql忘记root密码
- java通过SMTP发送QQ邮件(参考龙果学院)
- Android ActivityManagerService(AMS)的启动分析
- java网络编程之IOException
- Matlab GUI 基础(2):M文件
- php之zip扩展
- C++ Notes-Inheritance-04
- java开发工程师
- ElasticSearch 搜索集群
- 2016北京网络赛C hihocoder
- java单例设计模式
- Android ActivityManagerService(AMS)的进程管理
- Ajax的学习——get和post请求