日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Matlab GUI 基础(2):M文件

發布時間:2025/6/17 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 變量,亦可以在此處進行初始化。

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?>調
并且,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文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。