Matlab GUI 基础(2):M文件
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{:}); elsegui_mainfcn(gui_State, varargin{:}); end主函數主要是用于初始化操作,一般不要修改。
gui_Singleton = 1;表示只能生成一個 figure;
第一行是函數、輸入輸出參數表;
第四行、第五行是輸入輸出函數。
2、Opening 函數框架如下所示:
在 GUI 開始運行但還不可見的時候執行,主要進行一些初始化操作。
如果定義了 global 變量,亦可以在此處進行初始化。
3、Output 函數框架如下所示:
可以輸出數據到命令行。
function varargout = text1_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output;4、執行順序
GUI 文件執行函數的順序是:
并且,Opening 函數 、 Output 函數只執行在開始運行時執行一次。
若要根據用戶的要求,輸出到命令行,可以使用暫停和就行函數: uiwait,uiresume
具體如下
(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 设计(3):edi
- 下一篇: Matlab Robotic Toolb