matlabGUI回調函數介紹
GUI開發環境的常用工具與回調函數和GUI程序文件GUI開發常用工具1、控件面板2、對象對齊工具3、對象瀏覽器4、tab順序編輯器5、屬性編輯器6、菜單編輯器7、M文件編輯器回調函數回調函數是控件接收到用戶的操作時調用的特定函數,每個回調函數都是一個子函數,每個圖形對象類型不同,回調函數也不同(簡而言之:我執行一個操作,程序做出一個反應 例如:當點擊按鈕A時, 執行任務C,? 進入按鈕A的回調函數callback里, 寫下任務C的代碼。)常用類型callBack?最常用的就是它。如果控件是按鈕,那點擊按鈕時,則按鈕下的Callback就會執行;如果是滑塊,則拖動滑塊時,滑塊名下的callback就會執行;總之,就是對控件默認操作時,matlab后臺就會自動調用它名下的的callback。正常用途,全放在callback下就夠了。如果其他的,實在是想知道,了解一下也未嘗不可。 ButtonDownFcn 就是鼠標在它(代指各種控件)上面點擊一下,你放在這個函數名下的代碼就會執行。(ps:按鈕的callback也是點擊,所以會覆蓋掉這個buttondownfcn。)?CreateFcn?顧名思義,在生成這個控件,顯示之前,執行你放在這個函數名下的代碼;?DeleteFcn?一樣。在控件要銷毀,但是被毀滅之前執行這個函數名下的代碼。比如:“真的要退出嗎”這一類就是寫在這里。?KeyPressFcn?當前控件獲得焦點且有按鍵按下時執行。(什么是焦點?就是這個控件被鼠標點了(或者是tab輪選到了))。一般在這下面的代碼還會判斷下按鍵是什么,然后執行相應的代碼。?ResizeFcn,SelectionChangeFcn 不常用。(控件都有Resize的屬性,好像默認是不可調整) SelectionChangeFcn 是在群按鈕 組件中,改變選擇時,所執行的函數。?(ps:哪些控件支持哪些回調函數?很簡單,你在它上面右鍵就可以看到了,點進去就可以編輯了。可以在property inspect中在需要的回調函數下設置%automatic就可以自動添加相應的回調函數框架。)Matlab回調函數自動命名回調函數的函數名是GUI對其自動命名,當設計時在界面中添加一個控件時,就根據該控件的“tag”屬性確定了回調函數的名稱。例如:按鈕pushbutton1被添加的時候,其tag屬性是pushbutton1,因此就命名了一個回調函數pushbutton1_callback,當保存文件時就該文件作為子函數保存。如果修改了tag屬性則回調函數名也改變回調函數的輸入參數回調函數的輸入參數也是由gui自動確定的,常用的有hobject,eventdata,handles,例如pushbutton1_callback的聲明語句和注釋如下:hObject 是當前回調函數的圖形對象句柄,通過hObject可以使用set和get命令設置和 獲取圖形對象的屬性eventdata 是預留的輸入參數Handles是存放圖形窗口中所有圖形對象句柄的結構體,存儲了所有在圖形界面中的控件、菜單、坐標軸對象的句柄,可以 在function之間傳遞數據。例:p=get(handles.axes1,’position’) %獲取axes1的位置GUI程序文件GUI圖形用戶界面的程序文件保存在兩個文件中,是在第一次保存或運行時生成的。1).fig文件:.fig是一個圖形文件,在設計界面時創建的界面保存在在.fig文件中,包括GUI界面控件、菜單等所有圖形對象的屬性2).m文件:.m文件是用來存放GUI程序代碼的,matlab自動創建的M文件為GUI控制程序提供一個框架,每個需要編程的函數都包含一個函數聲明行,只需要在函數體中編寫程序。.m文件包括一下幾個通用部分:主函數包括注釋說明和窗口初始化程序,主函數名為文件名。例子函數openingfun是打開窗口時的初始化程序Outputfcn 函數是窗口的輸出子函數,定義輸出到命令窗口的變量其他的子函數是各控件的回調函數。