天天看點

CNN Matlab例子RGB_Matlab操作之GUI(一)

CNN Matlab例子RGB_Matlab操作之GUI(一)

Matlab是一個強大的數學工具,在各行各業都得以利用,它除了自身強大的矩陣運算和仿真運算功能,還可以與許許多多的軟體提供接口,完成且不限于如資料處理,報告導出,代碼生成,混合編譯等等功能,而如此強大的功能,往往也需要投入很多的時間去學習,其help文檔是一個很好的學習工具,想要實作的功能隻能是你想不到,認真鑽研,幾乎可以完成你要實作的目的。

在實際運用中,除了仿真,還常常用到腳本程式設計,在大家的潛意識中,運作腳本無非就是寫完一定的代碼,然後将腳本用F5來運作,或者直接拖入Command Window中運作,這不就可以實作了嗎?這話沒錯,若從根本上來講,所有的運用程式以及其工作界面,其本質就是運作的代碼,但是,在友好方面,直覺的界面顯示往往讓人賞心悅目。

在開始介紹之前,說一下筆者的Matlab環境:Matlab2016b。對于GUI的開發,腳本函數可能不向下相容,但是筆者盡量用相容的函數來編寫例子,那麼,現在以界面的介紹作為一個引入來講講GUI的相關内容吧。。

在開始介紹之前,說一下筆者的Matlab環境:Matlab2016b。對于GUI的開發,腳本函數可能不向下相容,但是筆者盡量用相容的函數來編寫例子,那麼,現在以界面的介紹作為一個引入來講講GUI的相關内容吧。

要建立GUI,得知道怎麼開始吧,首先,打開Matlab,在Matlab的CommandWindow中輸入:guide

CNN Matlab例子RGB_Matlab操作之GUI(一)

出現GUI建立開始界面,選擇第一項,建立預設空白的GUI界面

CNN Matlab例子RGB_Matlab操作之GUI(一)

則出現了以下的GUI編輯界面,因筆者喜歡将各控件的名字展示出來,通過File—>preferences—>Shownames in component palette,應用後如下

CNN Matlab例子RGB_Matlab操作之GUI(一)

開發界面如上所示,現對以上界面作一個介紹

(01)檔案操作

建立檔案,打開檔案,偏好設定等

CNN Matlab例子RGB_Matlab操作之GUI(一)
(02)編輯

複制剪切,撤銷等操作,與其他常用的快捷鍵一樣

CNN Matlab例子RGB_Matlab操作之GUI(一)
(03)檢視

是否顯示工具條(圖上7-22所示圖示),狀态欄(同圖上38所示功能),并可檢視目前選中的控件的屬性(同功能20),檢視目前GUI包含的所在控件(同功能21),檢視目前GUI界面的代碼(同功能19),檢視選中控件的回調函數

CNN Matlab例子RGB_Matlab操作之GUI(一)
(04)布局

是否顯示栅格,将控件上移一層,将控件下移一層,将控件置于頂層,将控件置于底層(與做PPT時将圖檔放置的順序一樣)

CNN Matlab例子RGB_Matlab操作之GUI(一)
(05)工具

運作目前GUI,對齊設定(同15),設定網格的有無及其密集程式,友善界面的設計,菜單編輯器(同16),按TAB鍵時光标移動順序(同17),工具欄編輯器(同18),GUI選項(設定是否單獨生成代碼,界面是否可拖拽等)

CNN Matlab例子RGB_Matlab操作之GUI(一)
(06)幫助界面

能夠很好地幫助學習GUI的設計

(07)建立GUI (08)打開GUI界面(.fig) (09)儲存目前GUI (10)對控件進行剪切操作 (11)對控件進行複制操作 (12)對控件進行粘貼操作 (13)撤銷操作 (14)redo操作 (15)對選中的幾個控件進行對齊操作

(同PPT或VB中的操作),友善快速對齊,美化界面

CNN Matlab例子RGB_Matlab操作之GUI(一)
(16)菜單編輯器

包括菜單欄菜單(GUI上方的菜單頁籤),右鍵彈出菜單,跟設計VB的form有異曲同工之妙

(17)TAB鍵按動時光标標明控件順序

如同在填寫網頁内容時,按TAB鍵能自動跳轉并選中下一行一樣,用來編輯控件的選中順序,VB中經常用到,當要填寫的東西多時(Edit Text控件多的情況下尤其重要),這個順序的合理安排能夠很友好

(18)工具欄編輯器

根據個人習慣設定工具欄中的工具及其順序

(19)Editor

調出編輯器,也就是腳本界面,其腳本對應目前編輯的GUI

(20)屬性工具條

調出目前選中控件的所有屬性,這個非常重要,GUI的設計,其實就是對各個控件屬性的操作并比對一定的腳本程式來完成

CNN Matlab例子RGB_Matlab操作之GUI(一)
(21)控件檢視器

目前Figure包含的所有控件

(22)運作 (23)按鈕控件

其常用的屬性有Tag(每個控件對應的唯一身份辨別,切勿重複,後面的介紹不再重複),FontSize(按鈕上顯示字型的大小),String(按鈕上顯示的内容),Callback(按鈕按下後的執行内容,按鈕一般代表着回調函數)

CNN Matlab例子RGB_Matlab操作之GUI(一)
(24)滑動條

一般用作數值的變化,比如模拟溫度,模拟油門開度,當然,也可以用來放大和縮小圖像的作用,其常用屬性為Tag,Max(将滑塊拉到最上或最右時Value的值),Min(将滑塊拉到最下或最左時Value的值),Value(對應滑塊位置實時值)

CNN Matlab例子RGB_Matlab操作之GUI(一)
(25)Radio Button

大家裝軟體時,提示你是不是接受軟體安裝條約的就是它,一般用作一段程式是否會被執行的先決條件,其常用的屬性包括:Tag ,String(顯示在圈圈後面的文字,比如I accept this agreement),Max(當黑點出現時的Value值),Min(當為空心圈的Value值),Value(隻會是Max與Min中的一個)

CNN Matlab例子RGB_Matlab操作之GUI(一)
(26)Check Box

大家對裝防毒軟體時給附贈全家桶的時候并不陌生,它這個就是這個功能,一般用于篩選一些條件,其常用的屬性包括:Tag ,String(顯示在方框後面的文字,比如将浏覽器首頁設定為xxxx),Max(當勾上時的Value值),Min(當不勾上的Value值),Value(隻會是Max與Min中的一個)

CNN Matlab例子RGB_Matlab操作之GUI(一)
(27)Edit Text

可編輯文本,常用于與腳本進行互動,其常用的屬性包括:Tag ,String(運作時該文本框中的預設文字,可作為輸入提示),FontSize(字型大小)

CNN Matlab例子RGB_Matlab操作之GUI(一)
(28)Static Text

靜态文本,常用于顯示程式運作的狀态,其常用的屬性包括:Tag ,String(運作時該文本框中的預設文字),FontSize(字型大小)

CNN Matlab例子RGB_Matlab操作之GUI(一)
(29)Pop-up Menu

下拉菜單,一般用于選中某一樣屬性,其常用屬性包括Tag,FontSize,String(下拉菜單的選項,每一項内容以換行符為斷開點),Value(一一對應String的内容,當選中第幾個選項,其數值都會變化,以Max,Min,以及String中選項的個數而定),Max建議設定為選項個數,Min建議設定為1

CNN Matlab例子RGB_Matlab操作之GUI(一)
(30)List Box

用于展示文本内容,如同用文本文檔打開一個小說檔案一樣,其常用屬性包括Tag,FontSize,String(要顯示的文本,可用來與腳本互動,也可反應程式狀态,以換行符為一行文字的結束),Value(一一對應String的内容,當選中第幾行文字,其數值都會變化,以Max,Min,以及String中文字行數而定),Max建議設定為行數,Min建議設定為1

CNN Matlab例子RGB_Matlab操作之GUI(一)
(31)Toggle Button

開關按鈕,其作用與RadioButton和Check Box功能類似,當按下時可作為一個程式執行的先決條件,其常用的屬性包括:Tag ,String,Max(當按下時的Value值),Min(當彈起時的Value值),Value(隻會是Max與Min中的一個)

CNN Matlab例子RGB_Matlab操作之GUI(一)
(32)Table

表單,可用作簡單的介紹或一些資料的展示,其常用的屬性為:Tag,FontSize,Data

CNN Matlab例子RGB_Matlab操作之GUI(一)
(33)Axes

畫圖,用于曲線的作圖,其常用的屬性比較多,就不一一列舉,一般要提前設定好線型,坐标個數,是否包含網格,圖例等等

CNN Matlab例子RGB_Matlab操作之GUI(一)
(34)Panel

面闆,一般用來對控件進行分塊,起到一個美化界面,讓人一目了然看出包含哪些功能,其常用屬性為Title,FontSize,提前設定好

CNN Matlab例子RGB_Matlab操作之GUI(一)
(35)Button Group

常與Radio Button的Tag屬性并用,單獨控件并無多大意義,其常用屬性有:Tag,Title

CNN Matlab例子RGB_Matlab操作之GUI(一)
(36)ActiveX Control

與計算機的其他軟體提供接口,功能比較多,與軟體的不同其屬性不同

(37)GUI主界面

所有控件的承載體,打開的畫幅為建立功能的GUI主界面,在上面增加的控件均将展示在該主界面上。輕按兩下在編輯模式的所有控件,可以打開該控件的屬性對話框,其中要實作的功能均由控件的屬性及其對應的回調函數來決定。

(38)狀态欄

表示目前的各項資訊,包括Tag(選中的控件辨別),Current Point(滑鼠位置,相對GUI主界面的左,下位置),Position(控件相對GUI主界面的左,下位置,控件的寬,高)

——————界面介紹到此結束——————

在進行更改并第一次儲存的情況下,預設會生成一個.fig檔案和同名的.m檔案,在使用時,兩個檔案缺一不可

CNN Matlab例子RGB_Matlab操作之GUI(一)

至于控件與腳本的用法,後續會進行執行個體介紹

繼續閱讀