matlabGUI操作講義圖形用戶界面設(shè)計課件_第1頁
matlabGUI操作講義圖形用戶界面設(shè)計課件_第2頁
matlabGUI操作講義圖形用戶界面設(shè)計課件_第3頁
matlabGUI操作講義圖形用戶界面設(shè)計課件_第4頁
matlabGUI操作講義圖形用戶界面設(shè)計課件_第5頁
已閱讀5頁,還剩64頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、matlab-GUI-操作講義-圖形用戶界面設(shè)計七七.圖形用戶界面圖形用戶界面matlab-GUI-操作講義-圖形用戶界面設(shè)計本章主要內(nèi)容本章主要內(nèi)容n圖形用戶界面的設(shè)計原則和一般圖形用戶界面的設(shè)計原則和一般步驟步驟n圖形用戶界面設(shè)計圖形用戶界面設(shè)計n圖形用戶界面設(shè)計工具應(yīng)用圖形用戶界面設(shè)計工具應(yīng)用nM M函數(shù)文件實現(xiàn)圖形用戶界面函數(shù)文件實現(xiàn)圖形用戶界面matlab-GUI-操作講義-圖形用戶界面設(shè)計7.1 圖形用戶界面的設(shè)計原則和一般步驟圖形用戶界面的設(shè)計原則和一般步驟n 圖形用戶界面就是通過窗口、選單、按鈕、文字說明等對象構(gòu)成一個美觀的界面,提供用戶利用鼠標或鍵盤方便地實現(xiàn)操作。n MAT

2、LAB設(shè)計圖形用戶界面的方法有兩種:使用可視化的界面環(huán)境(圖形用戶使用可視化的界面環(huán)境(圖形用戶界面設(shè)計工具)和通過編寫程序。界面設(shè)計工具)和通過編寫程序。 matlab-GUI-操作講義-圖形用戶界面設(shè)計7.1.1 設(shè)計原則設(shè)計原則1.簡單性簡單性 設(shè)計界面時,應(yīng)力求簡捷、直觀、清晰地體現(xiàn)出界面的功能和特征。窗口數(shù)目盡量少,力避不同窗口間來回切換;多采用圖形,少用數(shù)值;不要出現(xiàn)可有可無的功能。matlab-GUI-操作講義-圖形用戶界面設(shè)計7.1.1 設(shè)計原則(續(xù))設(shè)計原則(續(xù))2.一致性一致性 兩層含義:一指自己設(shè)計的界面風格要兩層含義:一指自己設(shè)計的界面風格要盡量一致;二指新設(shè)計的界面要

3、與其他已有盡量一致;二指新設(shè)計的界面要與其他已有的界面風格要一致。一般習慣圖形區(qū)在界面的界面風格要一致。一般習慣圖形區(qū)在界面左側(cè),控制區(qū)在右側(cè)。左側(cè),控制區(qū)在右側(cè)。matlab-GUI-操作講義-圖形用戶界面設(shè)計7.1.1 設(shè)計原則(續(xù))設(shè)計原則(續(xù))3. 習常性習常性 設(shè)計界面時,應(yīng)盡量使用人們所熟悉的標志和符號,便于用戶使用。4. 其他考慮因素其他考慮因素 除了以上靜態(tài)性能之外,還應(yīng)注意界面的動態(tài)性能:界面對用戶操作的響應(yīng)要迅速、連續(xù);對持續(xù)時間較長的運算要給出等待時間提示,并允許用戶中斷運算。matlab-GUI-操作講義-圖形用戶界面設(shè)計7.1.2 一般制作步驟一般制作步驟界面制作包括

4、界面設(shè)計和程序?qū)崿F(xiàn)。n分析界面所要實現(xiàn)的主要功能,明確設(shè)計任務(wù);n繪界面草圖,注意從使用者的角度來考慮界面布局;n按構(gòu)思的草圖,上機制作靜態(tài)界面;n編寫界面動態(tài)功能程序。matlab-GUI-操作講義-圖形用戶界面設(shè)計7.2 圖形用戶界面設(shè)計圖形用戶界面設(shè)計7.2.1 可視化的界面環(huán)境可視化的界面環(huán)境 MATLAB6.5版本提供的GUI設(shè)計工具較前面的版本有較大的改善,設(shè)計界面變化很大。打開GUI設(shè)計工具的方法有以下幾種:(1) 選擇菜單菜單“File”“ New”“GUI”命令命令;(2) 在指令窗口輸入以下命令: guide 打開空白設(shè)計工作臺 guide FN 在工作臺中打開文件名為FN

5、 的用戶界面注意:注意:在在guideguide指令作用下,待打開的文件名不分字母的大小寫。指令作用下,待打開的文件名不分字母的大小寫。matlab-GUI-操作講義-圖形用戶界面設(shè)計7.2 圖形用戶界面設(shè)計(續(xù))圖形用戶界面設(shè)計(續(xù))n 打開的GUI啟動界面提供新建界面(Create New GUI)和打開已有界面文件(Open Existing GUI)的屬性頁。新建界面可以選擇空白界面、包含有控件的模板界面、包含有軸對象和菜單的模板界面、標準詢問窗口等選項。n 選擇任意一項都會打開GUI設(shè)計工作臺,對界面靜態(tài)組成部分進行的具體的修改工作都是在工作臺實現(xiàn)的。matlab-GUI-操作講義-

6、圖形用戶界面設(shè)計7.2 圖形用戶界面設(shè)計(續(xù))圖形用戶界面設(shè)計(續(xù))如在指令窗鍵入:guide,則可得到如下GUI設(shè)計工具的啟動界面:空白界面有控件的模板界面有軸對象和菜單的模板界面標準詢問窗口matlab-GUI-操作講義-圖形用戶界面設(shè)計7.2 圖形用戶界面設(shè)計(續(xù))圖形用戶界面設(shè)計(續(xù)) 若激活打開已有界面文件(Open Existing GUI)的屬性頁,則可通過打開文件瀏覽器(Browse)選定需打開文件并打開,主窗口則顯示最近打開的界面文件的列表。最近打開的界面文件列表最近打開的界面文件列表打開文件瀏覽器打開文件瀏覽器matlab-GUI-操作講義-圖形用戶界面設(shè)計7.2 圖形用戶

7、界面設(shè)計(續(xù))圖形用戶界面設(shè)計(續(xù))如在新建界面中選擇“Blank GUI (Default)”,然后單擊“OK”按鈕,就會出現(xiàn)如下的GUI設(shè)計工作臺:matlab-GUI-操作講義-圖形用戶界面設(shè)計7.2 圖形用戶界面設(shè)計(續(xù))圖形用戶界面設(shè)計(續(xù))GUI設(shè)計工作臺有4個功能區(qū):菜單條、編菜單條、編輯工具條、控件模板區(qū)、設(shè)計工作區(qū)。輯工具條、控件模板區(qū)、設(shè)計工作區(qū)。菜單條編輯工具條控件模板區(qū)設(shè)計工作區(qū)matlab-GUI-操作講義-圖形用戶界面設(shè)計7.2 圖形用戶界面設(shè)計(續(xù))圖形用戶界面設(shè)計(續(xù)) 在工具欄主要提供了六個工具:對象對齊對象對齊工具、菜單編輯器、文件編輯器、屬性編工具、菜單編

8、輯器、文件編輯器、屬性編輯器、界面激活工具和對象瀏覽器輯器、界面激活工具和對象瀏覽器,單擊這六個按鈕就會出現(xiàn)相應(yīng)的窗口。對象對齊工具菜單編輯器文件編輯器屬性編輯器對象瀏覽器運行界面matlab-GUI-操作講義-圖形用戶界面設(shè)計7.2.2 創(chuàng)建用戶菜單創(chuàng)建用戶菜單1.菜單編輯菜單編輯在GUI設(shè)計工作臺的菜單條選擇“Tool”Menu Editor”或單擊工具欄“Menu Editor”按鈕,就會出現(xiàn)菜單編輯器窗口。新建菜單新建子菜單菜單左、右移菜單上、下移刪除菜單填寫菜單名,如果在前面加“&”符號則加快捷鍵,當運行時第一個字母會加下劃線,以便用戶快速激活菜單項標記分隔符初值是否已選輸入

9、回調(diào)函數(shù)matlab-GUI-操作講義-圖形用戶界面設(shè)計7.2.2 創(chuàng)建用戶菜單創(chuàng)建用戶菜單(續(xù)續(xù))2. 通過通過uimenu命令創(chuàng)建菜單命令創(chuàng)建菜單h_menu=uimenu(h_parent,PropertyName,ProperValue,)h_menu=uimenu(h_fig,lable,paint) %創(chuàng)建菜單paintmatlab-GUI-操作講義-圖形用戶界面設(shè)計7.2.3 控件的使用控件的使用1. 常用控件常用控件詳見下表所示:詳見下表所示:matlab-GUI-操作講義-圖形用戶界面設(shè)計控件名控件名PropertyName功能功能按鈕按鈕PushButton最常用的控件,用

10、于響應(yīng)用戶的鼠標單擊,按鈕上有說明文字說明其作用。切換按鈕切換按鈕ToggleButton當單擊時會凹凸狀態(tài)切換。單選按鈕單選按鈕RadioButton當單擊時會用黑白點切換,總是成組出現(xiàn),多個單選按鈕互斥,一組中只有一個被選中。復(fù)選框復(fù)選框CheckBox當單擊時會用切換,有選中、不選中和不確定等狀態(tài),總是成組出現(xiàn),多個復(fù)選框可同時選用。文本框文本框EditText凹形方框,可隨意輸入和編輯單行和多行文字,并顯示出來。靜態(tài)文本框靜態(tài)文本框StaticText用于顯示文字信息,但不接受輸入。滾動條滾動條Slider可以用圖示的方式顯示在一個范圍內(nèi)數(shù)值的大概值范圍,用戶可以移動滾動條改變數(shù)值???/p>

11、架框架Frame將一組控件圍在框架中,用于裝飾界面。列表框列表框ListBox顯示下拉文字列表,用戶可以從列表中選擇一項和多項。彈出式菜單彈出式菜單PopupMenu相當于文本框和列表框的組合,用戶可以從下拉列表中選擇。坐標軸坐標軸Axes用于繪制坐標軸。matlab-GUI-操作講義-圖形用戶界面設(shè)計7.2.3 控件的使用(續(xù))控件的使用(續(xù))2. 控件的創(chuàng)建控件的創(chuàng)建(1) 在可視化界面環(huán)境中創(chuàng)建控件在可視化界面環(huán)境中創(chuàng)建控件 在可視化界面環(huán)境中創(chuàng)建控件很簡單,就是在控件模板區(qū)中選中控件,然后拖放到設(shè)計工作區(qū)即可。 matlab-GUI-操作講義-圖形用戶界面設(shè)計7.2.3 控件的使用(續(xù)

12、)控件的使用(續(xù))(2) 用用uicontrol命令創(chuàng)建控件命令創(chuàng)建控件 h_control=uicontrol(h_Parent,PropertyName,ProperValue,)matlab-GUI-操作講義-圖形用戶界面設(shè)計7.2.3 控件的使用(續(xù))控件的使用(續(xù))3. 控件的常用屬性控件的常用屬性 創(chuàng)建控件以后,需要對控件的各種屬性進行設(shè)置,大部分控件都具有以下屬性。(1)string屬性:用于顯示在控件上的字符串,起說明或提示作用。(2)callback屬性:回調(diào)函數(shù),與菜單的一樣。(3)enable屬性:表示該控件是否有效,”on“表示有效,”off“表示無效。(4)toolt

13、ipstring屬性:當鼠標放在控件上時顯示提示信息,為字符串。(5)字體字體屬性:包括fontname,fontsize等。(6)Tag屬性:控件的標記,用于標識控件。 matlab-GUI-操作講義-圖形用戶界面設(shè)計7.2.4 對象對齊工具、屬性編輯器和對象瀏覽器對象對齊工具、屬性編輯器和對象瀏覽器對象對齊工具用來將用戶界面的多個控件對齊;通過對象瀏覽器可以查看用戶界面中的所有對象;在屬性編輯器中可以設(shè)置和查看對象的各種屬性。matlab-GUI-操作講義-圖形用戶界面設(shè)計7.2.5 回調(diào)函數(shù)回調(diào)函數(shù)n 實現(xiàn)GUI的基本機制是對控件的屬性編程。在設(shè)計界面中選定需要編寫回調(diào)函數(shù)的對象,然后選

14、擇菜單菜單”View”“Object Callbacks”,就會出現(xiàn)4個子菜單,都是用來編寫回調(diào)函數(shù)的。n 當選擇各選單項時,MATLAB會提醒用戶保存設(shè)計的界面,然后打開打開M文件編輯器文件編輯器/ /調(diào)試器調(diào)試器,可看到機器自動生成了一個函數(shù)文件,用戶即可在該文件中帶%標記的行填寫回調(diào)指令,其余指令用戶不必也不能更改。matlab-GUI-操作講義-圖形用戶界面設(shè)計7.3 圖形用戶界面設(shè)計工具應(yīng)用圖形用戶界面設(shè)計工具應(yīng)用【例例7 71 1】 利用GUI工具設(shè)計用戶界面。該界面具有以下功能:(1)在編輯框中,可輸入表示阻尼比的標量或“行數(shù)組” 數(shù)值,并在按【enter】鍵后,在軸上畫出相應(yīng)的

15、 藍色曲線(坐標范圍:X軸0,15;Y軸0,2)。(2)在點擊【Grid on】或【Grid off】鍵時,在軸上 畫出或刪除“分格線”;缺省時無分格線。(3)在菜單【Options】下,有2個下拉菜單【Box on】和【Box off】;缺省時為Box off狀態(tài)。(4)所設(shè)計的界面和其上圖形對象、控件對象都按比例縮放。matlab-GUI-操作講義-圖形用戶界面設(shè)計7.3 圖形用戶界面設(shè)計工具應(yīng)用(續(xù))圖形用戶界面設(shè)計工具應(yīng)用(續(xù))界面最終效果圖如下所示:matlab-GUI-操作講義-圖形用戶界面設(shè)計7.3 圖形用戶界面設(shè)計工具應(yīng)用(續(xù))圖形用戶界面設(shè)計工具應(yīng)用(續(xù)) 由于本例的設(shè)計界面

16、清晰、要求明確,所以無需進行功能分析和繪制草圖,而可直接進入界面制作階段。matlab-GUI-操作講義-圖形用戶界面設(shè)計7.3 圖形用戶界面設(shè)計工具應(yīng)用(續(xù))圖形用戶界面設(shè)計工具應(yīng)用(續(xù))n 使用“guide”命令啟動GUI界面,選擇“Blank GUI”出現(xiàn)GUI設(shè)計工作臺,調(diào)整圖形大小,將界面窗口左邊的控件模板區(qū)中的控件拖放到設(shè)計工作區(qū)中。n 放置以下控件:一個坐標軸、兩個靜態(tài)文本框、一個可編輯文本框、兩個按鈕;然后打開對象對齊工具對齊各控件,界面布局如下圖。 matlab-GUI-操作講義-圖形用戶界面設(shè)計7.3 圖形用戶界面設(shè)計工具應(yīng)用(續(xù))圖形用戶界面設(shè)計工具應(yīng)用(續(xù))matlab

17、-GUI-操作講義-圖形用戶界面設(shè)計7.3 圖形用戶界面設(shè)計工具應(yīng)用(續(xù))圖形用戶界面設(shè)計工具應(yīng)用(續(xù))2. 設(shè)置控件屬性設(shè)置控件屬性 雙擊工作區(qū)及控件可引出圖形窗和相應(yīng)控件的“屬性編輯框(Property Inspector)”。 在圖形窗的屬性編輯框中,設(shè)置如下屬性值:Name Myguil %圖形窗的名稱Resize on %圖形窗可以縮放Tag figuer1 %生成handles.figure1域存放圖形窗句柄matlab-GUI-操作講義-圖形用戶界面設(shè)計7.3 圖形用戶界面設(shè)計工具應(yīng)用(續(xù))圖形用戶界面設(shè)計工具應(yīng)用(續(xù))在軸屬性編輯框中,設(shè)置如下屬性值:nUnits normal

18、ized %采用相對度量單位,縮放時保持比例nBox off %坐標軸不封閉nTag axes1 %生成handles.axes1域存放軸句柄nXLim 0,15 %X軸范圍nYLim 0,2 %Y軸范圍matlab-GUI-操作講義-圖形用戶界面設(shè)計7.3 圖形用戶界面設(shè)計工具應(yīng)用(續(xù))圖形用戶界面設(shè)計工具應(yīng)用(續(xù))在圖形區(qū)上方的靜態(tài)文本的屬性編輯框中,設(shè)置如下屬性值:nFontsize 0.696 %字體大小nFontUnits normaliszed %采用相對度量單位,縮放時保持字體比例nString 歸一化二階系統(tǒng)的階躍響應(yīng)曲線 %顯示在界面上的字符nTag title_text %

19、生成handles.title_text域存放靜態(tài)文本句柄nHorizontalAlignment Center %文字中心對齊nUnits normalized %采用相對度量單位,縮放時保持該區(qū)比例matlab-GUI-操作講義-圖形用戶界面設(shè)計7.3 圖形用戶界面設(shè)計工具應(yīng)用(續(xù))圖形用戶界面設(shè)計工具應(yīng)用(續(xù))在可編輯文本上方的靜態(tài)文本的屬性編輯框中,設(shè)置如下屬性值:nFontsize 0.351 %字體大小nFontUnits normaliszed %采用相對度量單位,縮放時保持字體比例nHorizontalAlignment Center %文字中心對齊nString 系統(tǒng)阻尼比系

20、統(tǒng)阻尼比 %顯示在界面上的字符nTag edit_text %生成handles.edit_text域存放靜態(tài)文本句柄nUnits normalized %采用相對度量單位,縮放時保持該區(qū)比例matlab-GUI-操作講義-圖形用戶界面設(shè)計7.3 圖形用戶界面設(shè)計工具應(yīng)用(續(xù))圖形用戶界面設(shè)計工具應(yīng)用(續(xù))在可編輯文本的屬性編輯框中,設(shè)置如下屬性值:nFontsize 0.626 %字體大小nFontUnits normaliszed %采用相對度量單位,縮放時保持字體比例nHorizontalAlignment Center %文字中心對齊nString %在界面上顯示為空白nTag zet

21、a_edit %生成handles.zeta_edit域存放彈出式選單句柄nUnits normalized %采用相對度量單位,縮放時保持該區(qū)比例matlab-GUI-操作講義-圖形用戶界面設(shè)計7.3 圖形用戶界面設(shè)計工具應(yīng)用(續(xù))圖形用戶界面設(shè)計工具應(yīng)用(續(xù))在上按鍵的屬性編輯框中,設(shè)置如下屬性值:nFontsize 0.485 %字體大小nFontUnits normaliszed %采用相對度量單位,縮放時保持字體比例nHorizontalAlignment Center %文字中心對齊nString Grid on %在按鍵上顯示Grid onnTag GridOn_push %生成

22、handles.GridOn_push域存放該鍵句柄nUnits normalized %采用相對度量單位,縮放時保持該鍵比例matlab-GUI-操作講義-圖形用戶界面設(shè)計7.3 圖形用戶界面設(shè)計工具應(yīng)用(續(xù))圖形用戶界面設(shè)計工具應(yīng)用(續(xù))在下按鍵的屬性編輯框中,設(shè)置如下屬性值:nFontsize 0.485 %字體大小nFontUnits normaliszed %采用相對度量單位,縮放時保持字體比例nHorizontalAlignment Center %文字中心對齊nString Grid off %在按鍵上顯示Grid offnTag GridOff_push %生成handles.

23、GridOff_push域存放該鍵句柄nUnits normalized %采用相對度量單位,縮放時保持該鍵比例matlab-GUI-操作講義-圖形用戶界面設(shè)計7.3 圖形用戶界面設(shè)計工具應(yīng)用(續(xù))圖形用戶界面設(shè)計工具應(yīng)用(續(xù))3. 精細調(diào)整控件的大小及其相對位置精細調(diào)整控件的大小及其相對位置 直接拖拉控件調(diào)整其大??;通過對象對齊工具將控件擺放整齊。4. 創(chuàng)建菜單創(chuàng)建菜單 點擊“菜單編輯器菜單編輯器”圖標,引出空白菜單編輯對話窗,再點擊該對話窗最左上方的“新菜新菜單單New Menu”圖標,在左側(cè)空白窗口中,出現(xiàn)”Untitled1”圖標;點擊此圖標則在右側(cè)引出填寫欄,在“l(fā)able”中填寫O

24、ptions;在“Tag”中填寫options,于是左側(cè)的”Untitled1”圖標變成“Options”圖標,表示此菜單已生成。matlab-GUI-操作講義-圖形用戶界面設(shè)計7.3 圖形用戶界面設(shè)計工具應(yīng)用(續(xù))圖形用戶界面設(shè)計工具應(yīng)用(續(xù))先點亮左側(cè)的“Option”圖標,再點擊菜單編輯對話窗上的“新菜單項New Menu Item”圖標,就引出等待定義的菜單項;在右側(cè)的“Label”中填寫B(tài)ox on,在“Tag”中填寫box_on。重復(fù)該小步操作,建立另一個菜單項Box off。 注意:菜單編輯對話窗上的“CallbackCallback”不要填寫,機器自動生成。matlab-GUI

25、-操作講義-圖形用戶界面設(shè)計7.3 圖形用戶界面設(shè)計工具應(yīng)用(續(xù))圖形用戶界面設(shè)計工具應(yīng)用(續(xù))5. 界面的激活和回調(diào)函數(shù)的生成界面的激活和回調(diào)函數(shù)的生成 點擊工作臺上的”運行界面“的工具圖標,會出現(xiàn)一個詢問對話框,當按提示對以上的設(shè)計進行存儲以后,就會引出2個界面:名為Myguil的(待激活的)圖形用戶界面;展示名為Myguil的(待填寫回調(diào)指令的)M函數(shù)文件的文件編輯器界面。同時,在當前目錄或給定目錄上,由MATLAB自動生成了2個文件,即Myguil.fig和和Myguil.m。matlab-GUI-操作講義-圖形用戶界面設(shè)計7.3 圖形用戶界面設(shè)計工具應(yīng)用(續(xù))圖形用戶界面設(shè)計工具應(yīng)用

26、(續(xù))在Myguil.m文件中,填寫回調(diào)指令:function varargout=zeta_edit_Callback(hObject, eventdata, handles,varargin)z=str2num(get(handles.zeta_edit,String) %從從編輯框中獲取編輯框中獲取zeta數(shù)據(jù)數(shù)據(jù)t=0:0.1:15; %設(shè)置時間采樣數(shù)組設(shè)置時間采樣數(shù)組cla %clear current axisfor k=1:length(z) y(:,k)=step(1,1,2*z(k),1,t); %計算階躍輸出計算階躍輸出 line(t,y(:,k); %繪制曲線繪制曲線en

27、dmatlab-GUI-操作講義-圖形用戶界面設(shè)計7.3 圖形用戶界面設(shè)計工具應(yīng)用(續(xù))圖形用戶界面設(shè)計工具應(yīng)用(續(xù))Function varargout=GridOn_push_Callback(hObject, eventdata, handles,varargin)grid on %配合配合Grid on 按鍵操作的指令按鍵操作的指令function varargout=GridOff_push_Callback(hObject, eventdata, handles,varargin)grid off % 配合配合Grid off 按鍵操作的指令按鍵操作的指令matlab-GUI-操作

28、講義-圖形用戶界面設(shè)計7.3 圖形用戶界面設(shè)計工具應(yīng)用(續(xù))圖形用戶界面設(shè)計工具應(yīng)用(續(xù))function varargout=box_on_Callback(hObject, eventdata, handles,varargin)box on %配合菜單配合菜單Box on的操作指令的操作指令set(handles.box_on,enable,off) %使菜單項使菜單項Box on失能失能set(handles.box_off,enable,on) %使菜單項使菜單項Box off使能使能matlab-GUI-操作講義-圖形用戶界面設(shè)計7.3 圖形用戶界面設(shè)計工具應(yīng)用(續(xù))圖形用戶界面設(shè)

29、計工具應(yīng)用(續(xù))function varargout=box_off_Callback(hObject, eventdata, handles,varargin)box off %配合菜單配合菜單Box off的操作指令的操作指令set(handles.box_off,enable,off) %使菜單項使菜單項Box off 失能失能 set(handles.box_on,enable,on) %使菜單項使菜單項Box on 使能使能matlab-GUI-操作講義-圖形用戶界面設(shè)計7.3 圖形用戶界面設(shè)計工具應(yīng)用(續(xù))圖形用戶界面設(shè)計工具應(yīng)用(續(xù))注意:注意:在填寫回調(diào)函數(shù)時,只有帶在填寫回調(diào)

30、函數(shù)時,只有帶%標記標記的那些行指令是用戶為滿足設(shè)計要求而填寫的,其的那些行指令是用戶為滿足設(shè)計要求而填寫的,其余指令都是機器自動生成的,用戶不必也不能更改余指令都是機器自動生成的,用戶不必也不能更改6. 6. 圖形用戶界面的使用圖形用戶界面的使用 經(jīng)過以上幾個步驟生成的圖形用戶界面已經(jīng)可以使用了,只要Myguil.m和Myguil.fig在當前目錄或在MATLAB搜索路徑上,那么在指令窗運行Myguil就能使用該界面。生成的界面如下圖所示:matlab-GUI-操作講義-圖形用戶界面設(shè)計7.3 圖形用戶界面設(shè)計工具應(yīng)用(續(xù))圖形用戶界面設(shè)計工具應(yīng)用(續(xù))matlab-GUI-操作講義-圖形用

31、戶界面設(shè)計7.3 圖形用戶界面設(shè)計工具應(yīng)用(續(xù))圖形用戶界面設(shè)計工具應(yīng)用(續(xù))例7.2 設(shè)計一個GUI,實現(xiàn)計算器的功能步驟一步驟一:界面功能分析 該計算器能完成數(shù)字的四則運算及部分常用的科學計算,如sin,cos,log等。步驟二步驟二:繪界面草圖 可有多種風格的界面。matlab-GUI-操作講義-圖形用戶界面設(shè)計7.3 圖形用戶界面設(shè)計工具應(yīng)用(續(xù))圖形用戶界面設(shè)計工具應(yīng)用(續(xù))草圖一:數(shù)值顯示區(qū)(參加計算的數(shù)值及計算結(jié)果)數(shù)字按鈕(09十個數(shù)字及小數(shù)點)代表+,-,*,/及sin,cos, log, log10運算的按鈕開始計算及清零按鈕matlab-GUI-操作講義-圖形用戶界面設(shè)計

32、7.3 圖形用戶界面設(shè)計工具應(yīng)用(續(xù))圖形用戶界面設(shè)計工具應(yīng)用(續(xù))草圖二:計算式第一個數(shù)字的編輯顯示計算式兩個數(shù)字間的計算關(guān)系計算式第二個數(shù)字的編輯顯示計算結(jié)果顯示區(qū)代表+,-,*,/及and,or,xor,yx等運算的按鈕開始計算及清零按鈕matlab-GUI-操作講義-圖形用戶界面設(shè)計7.3 圖形用戶界面設(shè)計工具應(yīng)用(續(xù))圖形用戶界面設(shè)計工具應(yīng)用(續(xù))草圖三:表達式編輯顯示區(qū)(格式和MATLAB命令相同)計算結(jié)果顯示區(qū)開始計算及清零按鈕matlab-GUI-操作講義-圖形用戶界面設(shè)計7.3 圖形用戶界面設(shè)計工具應(yīng)用(續(xù))圖形用戶界面設(shè)計工具應(yīng)用(續(xù))步驟三步驟三:設(shè)計界面( 選擇草圖一)

33、初步布局初步布局 打開GUI工作臺,通過用鼠標拖拉“工作區(qū)”右下角的“小黑塊”使工作區(qū)的大小合適,然后根據(jù)草圖從控件選擇區(qū)選擇相應(yīng)的控件拖拉到工作區(qū)的相應(yīng)位置。效果圖如下頁所示:matlab-GUI-操作講義-圖形用戶界面設(shè)計7.3 圖形用戶界面設(shè)計工具應(yīng)用(續(xù))圖形用戶界面設(shè)計工具應(yīng)用(續(xù))matlab-GUI-操作講義-圖形用戶界面設(shè)計7.3 圖形用戶界面設(shè)計工具應(yīng)用(續(xù))圖形用戶界面設(shè)計工具應(yīng)用(續(xù))2. 修改控件屬性修改控件屬性1)雙擊設(shè)計工作區(qū)的空白部分,打開圖形窗的屬性框,設(shè)置屬性如下: MenuBar none %圖形窗不使用標準菜單 Name Experiment1 %圖形窗名

34、稱 Resize off %圖形窗不能縮放 Tag mainWnd %生成handles.mainWnd域存放圖形窗句柄matlab-GUI-操作講義-圖形用戶界面設(shè)計7.3 圖形用戶界面設(shè)計工具應(yīng)用(續(xù))圖形用戶界面設(shè)計工具應(yīng)用(續(xù))2)靜態(tài)文本編輯框的屬性設(shè)置。以”expression”文本框為例: FontSize 15 %字體大小 Fontunits point % 字體大小的度量單位 HorizontalAlignment Center %對齊方式 String Expression %待顯示的字符 Tag text1 %生成handles.text1存放該靜態(tài)文本框的句柄 Unit

35、s point %文本框度量單位 matlab-GUI-操作講義-圖形用戶界面設(shè)計7.3 圖形用戶界面設(shè)計工具應(yīng)用(續(xù))圖形用戶界面設(shè)計工具應(yīng)用(續(xù))3)可編輯文本框的屬性設(shè)置 Sting 0 %初始狀態(tài)下顯示數(shù)字0 Tag pExp %可編輯文本框的句柄 其它與靜態(tài)文本框相同matlab-GUI-操作講義-圖形用戶界面設(shè)計7.3 圖形用戶界面設(shè)計工具應(yīng)用(續(xù))圖形用戶界面設(shè)計工具應(yīng)用(續(xù))注注: n Units或或FontUnits可選擇可選擇:inches(英寸英寸),centimeters (厘米厘米), normalized(按比例縮放按比例縮放),points(點陣點陣), pixe

36、ls (像素像素), characters(字符字符)。如果選擇如果選擇normalized,那么當那么當resize設(shè)為設(shè)為on時,控件時,控件或字體大小隨著整個窗口的縮放而改變或字體大小隨著整個窗口的縮放而改變。n 水平對齊方式水平對齊方式 HorizontalAlignment可以是可以是left, center, right。n 控件句柄控件句柄Tag有默認值,建議修改為帶有具體含義的有默認值,建議修改為帶有具體含義的字符串,以增加程序可讀性和方便回調(diào)函數(shù)調(diào)用字符串,以增加程序可讀性和方便回調(diào)函數(shù)調(diào)用。matlab-GUI-操作講義-圖形用戶界面設(shè)計7.3 圖形用戶界面設(shè)計工具應(yīng)用(續(xù)

37、)圖形用戶界面設(shè)計工具應(yīng)用(續(xù))4)單功能按鈕屬性設(shè)置。以按鈕“1”為例: String 1 Tag p1其它和靜態(tài)文本框相同。matlab-GUI-操作講義-圖形用戶界面設(shè)計7.3 圖形用戶界面設(shè)計工具應(yīng)用(續(xù))圖形用戶界面設(shè)計工具應(yīng)用(續(xù))3. 創(chuàng)建菜單創(chuàng)建菜單 創(chuàng)建一個“操作操作”菜單,帶兩個下拉選單“計計算算”和“清零清零”。matlab-GUI-操作講義-圖形用戶界面設(shè)計7.3 圖形用戶界面設(shè)計工具應(yīng)用(續(xù))圖形用戶界面設(shè)計工具應(yīng)用(續(xù))步驟四步驟四:激活界面,填寫回調(diào)函數(shù)n 保存靜態(tài)界面后,利用工具欄上的運行界面按鈕激活界面,同時,機器自動生成了exp1.fig和exp1.m兩個文

38、件。n 打開exp1.m文件,可看到自動生成的回調(diào)函數(shù),該函數(shù)的命名利用對象句柄進行區(qū)分,沒有任何執(zhí)行語句。matlab-GUI-操作講義-圖形用戶界面設(shè)計7.3 圖形用戶界面設(shè)計工具應(yīng)用(續(xù))圖形用戶界面設(shè)計工具應(yīng)用(續(xù))回調(diào)函數(shù):Tag_Callback(hObject,eventdata,handles)n 通過加入自己的處理語句,才可實現(xiàn)所需的功能。n 其中,hObject是該控件的句柄;evendata是備用參數(shù),目前沒有定義;handleshandles是用戶數(shù)據(jù),本身是一個構(gòu)架數(shù)組,存放了當前窗口所有對象的句柄,包括圖形窗本身、所有控件和菜單的句柄,并且可以增加一些域用來傳遞用戶

39、數(shù)據(jù)。n 利用guidata(H,handles)可以更新H的用戶數(shù)據(jù)。對本例來說,先需要定義幾個用戶變量,以便記錄參加對本例來說,先需要定義幾個用戶變量,以便記錄參加運算的數(shù)值,進行計算。運算的數(shù)值,進行計算。matlab-GUI-操作講義-圖形用戶界面設(shè)計7.3 圖形用戶界面設(shè)計工具應(yīng)用(續(xù))圖形用戶界面設(shè)計工具應(yīng)用(續(xù))function exp1_OpeningFcn(hObject, eventdata, handles, varargin)handles.output = hObject;handles.s_Exp=; %以字符串的形式記以字符串的形式記錄計算表達式錄計算表達式han

40、dles.s_Num=; %以字符串的形式記錄編輯框中以字符串的形式記錄編輯框中要顯示的數(shù)值要顯示的數(shù)值handles.i=1;% s_Exp的計數(shù)器的計數(shù)器handles.j=1;% s_Num的計數(shù)器的計數(shù)器handles.flag=0; %用來區(qū)分四則運算和函數(shù)運算用來區(qū)分四則運算和函數(shù)運算的標志的標志% Update handles structureguidata(hObject, handles);matlab-GUI-操作講義-圖形用戶界面設(shè)計7.3 圖形用戶界面設(shè)計工具應(yīng)用(續(xù))圖形用戶界面設(shè)計工具應(yīng)用(續(xù))數(shù)字按鈕的回調(diào)函數(shù),以數(shù)字數(shù)字按鈕的回調(diào)函數(shù),以數(shù)字1按鈕的回調(diào)函數(shù)為

41、例按鈕的回調(diào)函數(shù)為例function p1_Callback(hObject, eventdata, handles)handles.s_Exp(handles.i)=1;handles.s_Num(handles.j)=1;handles.i=handles.i+1;handles.j=handles.j+1;guidata(handles.mainWnd,handles);set(handles.pExp,string,handles.s_Num)matlab-GUI-操作講義-圖形用戶界面設(shè)計7.3 圖形用戶界面設(shè)計工具應(yīng)用(續(xù))圖形用戶界面設(shè)計工具應(yīng)用(續(xù)) 四則運算的回調(diào)函數(shù),以四則

42、運算的回調(diào)函數(shù),以“+”為例為例 function pAdd_Callback(hObject, eventdata, handles) if handles.flag handles.s_Exp(handles.i)=); handles.flag=0; handles.i=handles.i+1; handles.j=handles.j+1; end handles.s_Exp(handles.i)=+; handles.s_Num(handles.j)=+; handles.i=handles.i+1; handles.j=handles.j+1; guidata(handles.mai

43、nWnd,handles); set(handles.pExp,string,handles.s_Num)matlab-GUI-操作講義-圖形用戶界面設(shè)計7.3 圖形用戶界面設(shè)計工具應(yīng)用(續(xù))圖形用戶界面設(shè)計工具應(yīng)用(續(xù))其它運算的回調(diào)函數(shù),以其它運算的回調(diào)函數(shù),以“sin”為例為例function pSin_Callback(hObject, eventdata, handles) handles.s_Exp(handles.i:handles.i+3)=sin(; handles.flag=1; handles.s_Num=sin(; handles.i=handles.i+4; handles.j=handles.j+4; guidata(handles.mainWnd,handles); set(handles.pExp,string,handles.s_Num)matlab-GUI-操作講義-圖形用戶界面設(shè)計7.3 圖形用戶界面設(shè)計工具應(yīng)用(續(xù))圖形用戶界面設(shè)計工具應(yīng)用(續(xù))Reset按鈕的回調(diào)函數(shù),和按鈕的回調(diào)函數(shù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論