Matlab GUI memo
有一段時間沒寫博客,一周4篇文章都堅持不下來,不知道寫哪個方面的內容,寫研究相關就怕論文查重查到,其他方面也沒太多時間去學。還是花時間多學點其他方面。廢話到此,很早就做過matlab gui相關,現在想做一個論文的系統演示,很多東西又忘了又沒有記錄,再熟悉一次又得花大功夫,所以在這里系統的記錄下。
一、創建GUI的方式
學習GUI最好的材料當然是matlab的官方文檔了,本文也是按照相應的方式的來寫的。GUI就是簡單的用戶界面和對這些界面元素的響應,所以主要包含兩塊內容一是界面的設計,二是對控件元素的代碼的編寫。
創建GUI的方式有兩種
1)使用GUIDE
這個就比較簡單,就是在一個交互界面上拖動元素,排列組合生成界面,然后對每個控件寫上相應的響應代碼(callback函數)。下面展示了在matlab R2013上一個交互創建GUI的界面。左邊是各種可以利用的控件,而右邊是一整塊可以畫圖的畫布,可以把各種控件放在上面。保存fig后會自動生成對應控件的callback函數。
2)編碼的方式
寫一個程序文件定義好每個控件的屬性和行為,當用戶運行這個文件時,matlab會創建一個圖形界面。并生成相應的組件,能夠處理用戶的交互。運行并不會每次保存界面圖形而是每次運行都是重新創建一個。入門的推薦使用第一種方式。
二、簡單的例子
這個是matlab提供的一個例子,打開guide界面后,顯示如上,為了能夠將控件的文本顯示在控件上,通過設置File > Preferences > GUIDE. 選擇 Show names in component palette. 點擊 OK.就可以了
這樣控件的名稱就會在底下顯示出來,更直觀和容易選擇。按照simple_GUI 上的提示將所有控件添加到界面上,可以通過屬性窗口來設置屬性。比如更改名字,改變大小等。也可以通過對齊方式來對齊控件,使布局更加美觀整潔。
三、為常見部件編碼
為部件編寫的代碼主要在回調函數里編寫。所以首先要對回調函數有個了解。
3.1 回調函數
回調函數是你為GUI特定部件寫的函數。回調函數能夠通過響應部件上的事件來控制部件的行為。這些行為如:按下按鍵,選擇菜單等。這就是所謂事件驅動編程。當你創建好GUI保存之后就會自動生成對應的一系列回調函數,這些回調函數都是只有一個函數名和參數列表,里面的代碼需要自己編寫。那要如何找到某個部件對應的callback函數,只要在GUI界面,右鍵選擇view callback即可。
3.2 編寫回調函數
編寫回調函數就如同一般函數那樣編寫,你在某個按鍵下編寫的回調函數就是當這一按鍵按下時會執行的一些代碼。注意一點,如果某個變量想要在其他的回調函數里面使用,那么可以通過設置這一變量為global全局變量。這一變量在其他函數里就可以直接使用。取得某個部件的值,比如Check Box,Edit Text,Radio Button等。主要是通過取得部件的句柄來實現的。
如
button_state = get(hObject,'Value');
user_string = get(hObject,'String');
等




浙公網安備 33010602011771號