10分鐘搞定matlabGUIPPT課件_第1頁
10分鐘搞定matlabGUIPPT課件_第2頁
10分鐘搞定matlabGUIPPT課件_第3頁
10分鐘搞定matlabGUIPPT課件_第4頁
10分鐘搞定matlabGUIPPT課件_第5頁
已閱讀5頁,還剩90頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、2021/3/912021/3/92參考文獻:MATLAB程序設(shè)計教程 李海濤,鄧櫻 編著高等教育出版社,20022021/3/93 圖形用戶界面圖形用戶界面(GUI)是指由窗口、菜單、圖標、光標、按鍵、對話框和文本等各種圖形對象圖形對象組成的用戶界面。它讓用戶定制用戶與Matlab的交互方式,而命令窗口不是唯一與Matlab的交互方式。 用戶界面用戶界面是用戶與計算機進行信息交流的方式。計算機在屏幕顯示圖形和文本,若有揚聲器還可產(chǎn)生聲音。用戶通過輸入設(shè)備(如:鍵盤、鼠標、跟蹤球、繪制板或麥克風(fēng)),與計算機通訊。用戶界面設(shè)定了如何觀看和如何感知計算機、操作系統(tǒng)或應(yīng)用程序。通常,多是根據(jù)悅目的結(jié)

2、構(gòu)和用戶界面功能的有效性來選擇計算機或程序。2021/3/94 用戶通過鼠標或鍵盤選擇、激活這些圖形對象,使計算機產(chǎn)生某種動作或變化。 Matlab中設(shè)計圖形用戶界面的方法有兩種方法有兩種:使用可視化使用可視化的界面環(huán)境的界面環(huán)境和通過編寫程序通過編寫程序。 由上一講可知:用戶菜單、用戶控件和對話框是和坐標軸處于同一層次的,都是圖形窗口的子對象。 基本圖形對象分為控件對象控件對象和用戶界面菜單對象用戶界面菜單對象,簡稱控件控件和菜單菜單。2021/3/95圖形用戶界面設(shè)計工具的啟動圖形用戶界面設(shè)計工具的啟動圖形用戶界面設(shè)計工具的啟動方式:1. 命令方式命令方式圖形用戶界面GUI設(shè)計工具的啟動命

3、令為guide,格式為:guide功能:功能:啟動GUI設(shè)計工具,并建立名字為untitled.fig的圖形用戶界面。 功能:功能:啟動GUI設(shè)計工具,并打開已建立的圖形用戶界面filename。 guide filename2021/3/962. 菜單方式菜單方式 在Matlab的主窗口中,選擇File菜單中的New菜單項,再選擇其中的GUI命令,就會顯示GUI的設(shè)計模板。2021/3/97Matlab為為GUI設(shè)計一共準備了設(shè)計一共準備了4種模板,分別是種模板,分別是:uBlank GUI(Default)(空白模板,默認);uGUI with Uicontrols(帶控件對象的GUI模板

4、); uGUI with Axes and Menu(帶坐標軸與菜單的GUI模板);uModal Question Dialog(帶模式問題對話框的GUI模板)。 當用戶選擇不同的模板時,在GUI設(shè)計模板界面的右邊就會顯示出與該模板對應(yīng)的GUI圖形。 2021/3/98 圖形用戶界面設(shè)計工具啟動時模板選擇對話框圖形用戶界面設(shè)計工具啟動時模板選擇對話框2021/3/99 圖形用戶界面設(shè)計窗口圖形用戶界面設(shè)計窗口 圖形用戶界面GUI設(shè)計窗口由菜單欄、菜單欄、工具欄、控件工具欄、控件工具欄工具欄以及圖圖形對象設(shè)計區(qū)形對象設(shè)計區(qū)等4個功能區(qū)個功能區(qū)組成。 在GUI設(shè)計模板中選中一個模板,然后單擊OK按

5、鈕,就會顯示GUI設(shè)計窗口。選擇不同的GUI設(shè)計模式時,在GUI設(shè)計窗口中顯示的結(jié)果是不一樣的。左圖為空白GUI模板情形2021/3/910 GUI設(shè)計窗口的菜單欄菜單欄有File、Edit、View、Layout、Tools和Help 6個菜單項個菜單項,使用其中的命令可以完成圖形用戶界面的設(shè)計操作。 編輯工具編輯工具在菜單欄的下方,提供了常用的工具;設(shè)計設(shè)計工具區(qū)工具區(qū)位于窗口的左半部分,提供了設(shè)計GUI過程中所用的用戶控件;空間模板區(qū)空間模板區(qū)是網(wǎng)格形式的用戶設(shè)計GUI的空白區(qū)域。 在GUI設(shè)計窗口創(chuàng)建圖形對象后,通過雙擊該對象,就會顯示該對象的屬性編輯器。2021/3/911 Matl

6、ab提供了一套可視化的創(chuàng)建圖形窗口的工具,使用圖形用戶界面開發(fā)環(huán)境可方便地創(chuàng)建GUI應(yīng)用程序,它可以根據(jù)用戶設(shè)計的GUI布局,自動生成M文件的框架,用戶使用這一框架編制自己的應(yīng)用程序。一、圖形用戶界面開發(fā)環(huán)境一、圖形用戶界面開發(fā)環(huán)境(GUIDE)Matlab提供了一套可視化的創(chuàng)建圖形用戶接口(GUI)的工具,包括:2021/3/912u對象瀏覽器對象瀏覽器(Object Browser)用于獲得當前Matlab圖形用戶界面程序中的全部對象信息,對象的類型,同時顯示控件的名稱和標識,在控件上雙擊鼠標可以打開該控件的屬性編輯器;u布局編輯器布局編輯器(Layout Edtor)在圖形窗口中創(chuàng)建及布

7、置圖形對象。布局編輯器是可以啟動用戶界面的控制面板,上述工具都必須從布局編輯器中訪問,用用guide命令可以啟動,命令可以啟動,或在啟動平臺窗口中選擇或在啟動平臺窗口中選擇GUIDE來啟動布局編輯器;來啟動布局編輯器;u幾何排列工具幾何排列工具(Alignment Tool)調(diào)整各對象相互之間的幾何關(guān)系和位置;u屬性查看器屬性查看器(Property Inspector)查詢并設(shè)置屬性值;u菜單編輯器菜單編輯器(Menu Editor)創(chuàng)建、設(shè)計、修改下拉式菜單和快捷菜單;uTab順序編輯器順序編輯器(Tab Order Editor)用于設(shè)置當用戶按下鍵盤上的Tab鍵時,對象被選中的先后順序

8、。 2021/3/913 在Matlab 5中, GUI的設(shè)計是以 M文件的編程形式實現(xiàn)的,GUI的布局代碼存儲在M文件和MAT文件中,而在Matlab 6中有了很大的改變, Matlab 6將GUI的布局代碼存儲在 FIG文件中,同時還產(chǎn)生一個M文件用于存儲調(diào)用函數(shù),在M文件中不再包含GUI的布局代碼,在開發(fā)應(yīng)用程序時代碼量大大減少。 用于從控件選擇板上選擇控件對象并放置到布局區(qū)去,布局區(qū)被激活后就成為圖形窗口。 在命令窗口輸入GUIDE命令或點擊工具欄中的guide圖標都可以打開空白的布局編打開空白的布局編輯器輯器,在命令窗口輸入GUIDE filename 可打開一個已存在打開一個已存在

9、的的名為filename圖形用戶界面。1. 布局編輯器布局編輯器(Layout editor)2021/3/914 將控件對象放置到布局區(qū)將控件對象放置到布局區(qū)u 用鼠標選擇并放置控件到布局區(qū)內(nèi);u 移動控件到適當?shù)奈恢?;u 改變控件的大?。籾 選中多個對象的方法。一一個個簡簡單單的的布布局局示示例例2021/3/915 如所建立的布局還沒有進行存儲,可用File菜單下的Save As菜單項(或工具欄中的對應(yīng)項工具欄中的對應(yīng)項),按輸入的文件的名字,在激活圖形窗口的同時將存儲一對同名的M文件和帶有.fig擴展名的FIG文件。 激活圖形窗口激活圖形窗口2021/3/916 運行運行GUI程序程序

10、 在命令窗口直接鍵入文件名或用openfig, open或hgload命令運行GUI程序。2021/3/917 布局編輯器參數(shù)設(shè)置布局編輯器參數(shù)設(shè)置選File菜單下的Preferences菜單項打開參數(shù)設(shè)置窗口,點擊樹狀目錄中的GUIDE,即可以設(shè)置布局編輯器的參數(shù)。2021/3/918 布局編輯器的彈出菜單布局編輯器的彈出菜單 在任一控件上按下鼠標右鍵,會彈出一個菜單,通過該菜單可以完成布局編輯器的大部分操作。2021/3/9192. 位置調(diào)整工具位置調(diào)整工具(Alignment tool) 在選中多個對象后,可以方便的通過對象位置調(diào)整器調(diào)整對象間的對齊方式和距離。 對象位置調(diào)整器中的第一欄

11、是垂直方向的位置調(diào)整,第二欄是水平方向的位置調(diào)整。 利用位置調(diào)整工具,可以對GUI對象設(shè)計區(qū)內(nèi)的多個對象的位置進行調(diào)整。位置調(diào)整工具的打開方式有兩種:位置調(diào)整工具的打開方式有兩種:從GUI設(shè)計窗口的工具欄上選擇Align Objects命令按鈕;選擇Tools菜單下的Align Objects.菜單項,就可以打開對象位置調(diào)整器。2021/3/920利用對象屬性查看器,可以查看每個對象的屬性值,也可以修改、設(shè)置對象的屬性值。3. 用屬性查看器設(shè)置控件屬性用屬性查看器設(shè)置控件屬性 打開屬性查看器打開屬性查看器(Opening Property Inspector)對象屬性查看器的打開方式有四種:對

12、象屬性查看器的打開方式有四種:u從GUI設(shè)計窗口工具欄上選擇Property Inspector命令按鈕;u選擇View菜單下的Property Inspector菜單項;u在控件對象上單擊鼠標右鍵,選擇彈出菜單的 Property Inspector菜單項。 u在命令窗口中輸入inspect;2021/3/921u 布置控件;u 定義文本框的屬性;u 定義坐標軸的屬性;u 定義按鈕的屬性;u 定義復(fù)選框。 使用屬性查看器使用屬性查看器(Using Property Inspector)2021/3/922利用菜單編輯器,可以創(chuàng)建、設(shè)置、修改下拉式菜單和快捷菜單。選擇 Tools 菜單下的 M

13、enu Editor.子菜單,即可打開菜單編輯器。4. 菜單編輯器菜單編輯器(Menu Editor)菜單也可以通過編程實現(xiàn),方法為從GUI設(shè)計窗口的工具欄上選擇Menu Editor命令按鈕,打開菜單編輯程序。 2021/3/923菜單編輯器包括菜單的設(shè)計和編輯,菜單編輯器有八個快捷鍵,可以利用它們?nèi)我馓砑踊騽h除菜單,可以設(shè)置菜單項的屬性,包括名稱(Label)、標識(Tag)、選擇是否顯示分隔線(Separator above this item)、是否在菜單前加上選中標記(Item is checked)、調(diào)用函數(shù)(Callback)。2021/3/924 菜單編輯器左上角的第一個按鈕用

14、于創(chuàng)建一級菜單項。第二個按鈕用于創(chuàng)建一級菜單的子菜單。2021/3/925 菜單編輯器的左下角有兩個按鈕,選擇第一個按鈕,可以創(chuàng)建下拉式菜單。選擇第二個按鈕,可以創(chuàng)建Context Menu菜單。選擇它后,菜單編輯器左上角的第三個按鈕就會變成可用,單擊它就可以創(chuàng)建Context Menu主菜單。在選中已經(jīng)創(chuàng)建的Context Menu主菜單后,可以單擊第二個按鈕創(chuàng)建選中的Context Menu主菜單的子菜單。與下拉式菜單一樣,選中創(chuàng)建的某個Context Menu菜單,菜單編輯器的右邊就會顯示該菜單的有關(guān)屬性,可以在這里設(shè)置、修改菜單的屬性。2021/3/926 菜單編輯器左上角的第四個與第

15、五個按鈕用于對選中的菜單進行左移與右移,第六與第七個按鈕用于對選中的菜單進行上移與下移,最右邊的按鈕用于刪除選中的菜單。2021/3/9275. 對象瀏覽器對象瀏覽器(Object Browsers) 利用對象瀏覽器,可以查看當前設(shè)計階段的各個句柄圖形對象??梢栽趯ο鬄g覽器中選中一個或多個控件來打開該控件的屬性編輯器。對象瀏覽器的打開方式有:從GUI設(shè)計窗口的工具欄上選擇Object Browser命令按鈕;選擇View菜單下的Object Browser子菜單;在設(shè)計區(qū)域單擊鼠標右鍵,選擇彈出菜單的 Object Browser。2021/3/928. Tab順序編輯器順序編輯器(Tab O

16、rder Editor) 利用Tab順序編輯器(Tab Order Editor),可以設(shè)置用戶按鍵盤上的Tab鍵時,對象被選中的先后順序。Tab順序編輯器的打開方式為:順序編輯器的打開方式為:選擇Tools菜單下的Tab Order Editor.菜單項,就可以打開Tab順序編輯器。從GUI設(shè)計窗口的工具欄上選擇Tab Order Editor.命令按鈕。2021/3/9291. GUI控件對象類型控件對象類型 控件對象是事件響應(yīng)的圖形界面對象。當某一事件發(fā)生時,應(yīng)用程序會做出響應(yīng)并執(zhí)行某些預(yù)定的功能子程序(Callback).2. 控件對象的描述控件對象的描述 Matlab中的控件大致可分

17、為兩種,一種為動作控件動作控件,鼠標點擊這些控件時會產(chǎn)生相應(yīng)的響應(yīng)。一種為靜態(tài)控件靜態(tài)控件,是一種不產(chǎn)生響應(yīng)的控件,如文本框等。 二、控件對象及屬性二、控件對象及屬性 每種控件都有一些可以設(shè)置的參數(shù),用于表現(xiàn)控件的外形、功能及效果,既屬性。屬性由兩部分組成:屬性名和屬性值,它們必須是成對出現(xiàn)的。2021/3/930按鈕按鈕(Push Buttons):執(zhí)行某種預(yù)定的功能或操作;開關(guān)按鈕開關(guān)按鈕(Toggle Button):產(chǎn)生一個動作并指示一個二進制狀態(tài)(開或關(guān)),當鼠點擊它時按鈕將下陷,并執(zhí)行callback(回調(diào)函數(shù))中指定的內(nèi)容,再次點擊,按鈕復(fù)原,并再次執(zhí)行callback 中的內(nèi)容

18、;單選框單選框(Radio Button):單個的單選框用來在兩種狀態(tài)之間切換,多個單選框組成一個單選框組時,用戶只能在一組狀態(tài)中選擇單一的狀態(tài),或稱為單選項;復(fù)選框復(fù)選框(Check Boxes):單個的復(fù)選框用來在兩種狀態(tài)之間切換,多個復(fù)選框組成一個復(fù)選框組時,可使用戶在一組狀態(tài)中作組合式的選擇,或稱為多選項;文本編輯器文本編輯器(Editable Texts):用來使用鍵盤輸入字符串 的值,可以對編輯框中的內(nèi)容進行編輯、刪除和替換等操作;2021/3/931靜態(tài)文本框靜態(tài)文本框(Static Texts):僅用于顯示單行的說明文字;滾動條滾動條(Slider): 可輸入指定范圍的數(shù)量值;

19、邊框邊框(Frames):在圖形窗口圈出一塊區(qū)域;列表框列表框(List Boxes):在其中定義一系列可供選擇的字符串;彈出式菜單彈出式菜單(Popup Menus): 讓用戶從一列菜單項中選擇一項作為參數(shù)輸入;此外還有坐標軸(Axes), 用于顯示圖形和圖象。2021/3/932 用戶可以在創(chuàng)建控件對象時,設(shè)定其屬性值,未指定時將使用系統(tǒng)缺省值。3. 控件對象的屬性控件對象的屬性(Attributes of controller object) 兩大類控件對象屬性:第一類是所有控件對象都具有的公共屬性,第二類是控件對象作為圖形對象所具有的屬性。2021/3/933控件對象的公共屬性控件對象

20、的公共屬性uChildren 取值為空矩陣,因為控件對象沒有自己的子對象;uTag取值為字符串,定義了控件的標識值,在任何程序中都可以通過這個標識值控制該控件對象;uType 取值為uicontrol,表明圖形對象的類型;uVisible取值為on 或off。uUserDate取值為空矩陣,用于保存與該控件對象相關(guān)的重要數(shù)據(jù)和信息;uParent取值為某個圖形窗口對象的句柄,該句柄表明了控件對象所在的圖形窗口;2021/3/934uBackgroundColor取值為顏色的預(yù)定義字符或RGB數(shù)值;缺省值為淺灰色;uCallback取值為字符串,可以是某個M文件名或一小段Matlab語句,當用戶

21、激活某個控件對象時,應(yīng)用程序就運行該屬性定義的子程序;uEnable取值為on(缺省值),inactive和off;uExtend取值為四元素矢量0, 0, width, height,記錄控件對象標題字符的位置和尺寸;uForegroundColor取值為顏色的預(yù)定義字符或RGB數(shù)值,該屬性定義控件對象標題字符的顏色;缺省值為黑色;uMax,Min取值都為數(shù)值,缺省值分別為1和0;uString取值為字符串矩陣或塊數(shù)組,定義控件對象標題標題或選項內(nèi)容;uStyle取值可以是pushbutton(缺省值), radiobutton, checkbox, edit, text, slider,

22、frame, popupmenu 或listbox;uUnits取值可以是pixels (缺省值), normalized(相對單位), inches, centimeters(厘米)或points(磅);uValue取值可以是矢量,也可以是數(shù)值,其含義及解釋依賴于控件對象的類型??丶ο蟮幕究刂茖傩钥丶ο蟮幕究刂茖傩?021/3/935uFontAngle取值為normal(正體,缺省值), italic(斜體), oblique(方頭);uFontName取值為控件標題等字體的字庫名;uFontSize取值為數(shù)值;uFontUnits取值為points(缺省值), normalize

23、d, inches, centimeters或pixels;uFontWeight取值為normal(缺省值), light,demi和bold,定義字符的粗細;uHorizontalAligment取值為left,center (缺省值) 或 right,定義控件對象標題等的對齊方式??丶ο蟮男揎椏刂茖傩钥丶ο蟮男揎椏刂茖傩?021/3/936uListboxTop取值為數(shù)量值,用于listbox控件對象;uSliderStep取值為兩元素矢量minstep,maxstep,用于slider控件對象;uSelected取值為on 或off(缺省值) ;uSlectionHoghlight

24、取值為on 或off(缺省值) ??丶ο蟮妮o助屬性控件對象的輔助屬性uBusyAction取值為cancel或queue(缺省值) ;uButtDownFun取值為字符串,一般為某個M文件名或一小段Matlab程序;uCreatfun 取值為字符串,一般為某個M文件名或一小段Matlab程序;uDeletFun取值為字符串,一般為某個M文件名或一小段Matlab程序;uHandleVisibility取值為on(缺省值), callback或off;uInterruptible取值為on 或off(缺省值) 。Callback管理屬性管理屬性2021/3/9374. 控件對象的建立控件對象的

25、建立 Matlab提供了用于建立控件對象的函數(shù)uicontrol,其調(diào)用格式為: 對象句柄=uicontrol(圖形窗口句柄,屬性名1,屬性值1,屬性名2,屬性值2,)其中各個屬性名及可取的值和后面將介紹的uimenu函數(shù)相似,但也不盡相同。 在對話框上有各種各樣的控件,利用這些控件可以實現(xiàn)有關(guān)控制。例例1 建立數(shù)制轉(zhuǎn)換對話框。在左邊輸入一個十進制整數(shù)和216之間的數(shù),單擊“轉(zhuǎn)換”按鈕能在右邊得到十進制數(shù)所對應(yīng)的216進制字符串,單擊“退出”按鈕退出對話框。程序如下:2021/3/938 hf=figure(Color,0,1,1,Position,100,200,400,200,. Name

26、,數(shù)制轉(zhuǎn)換,NumberTitle,off,MenuBar,none); uicontrol(hf,Style,Text, Units,normalized,. Position,0.05,0.8,0.45,0.1,Horizontal,center,. String,輸 入 框,Back,0,1,1); uicontrol(hf,Style,Text,Position,0.5,0.8,0.45,0.1,. Units,normalized,Horizontal,center,. String,輸 出 框,Back,0,1,1); uicontrol(hf,Style,Frame,Positi

27、on,0.04,0.33,0.45,0.45,. Units,normalized,Back,1,1,0); uicontrol(hf,Style,Text,Position,0.05,0.6,0.25,0.1,. Units,normalized,Horizontal,center,. String,十進制數(shù),Back,1,1,0); uicontrol(hf,Style,Text,Position,0.05,0.4,0.25,0.1,. Units,normalized,Horizontal,center,. String,216進制,Back,1,1,0); he1=uicontrol(

28、hf,Style,Edit,Position,0.25,0.6,0.2,0.1,. Units,normalized,Back,0,1,0); he2=uicontrol(hf,Style,Edit,Position,0.25,0.4,0.2,0.1,. Units,normalized,Back,0,1,0); uicontrol(hf,Style,Frame,Position,0.52,0.33,0.45,0.45,. Units,normalized,Back,1,1,0); ht=uicontrol(hf,Style,Text,Position,0.6,0.5,0.3,0.1,. Un

29、its,normalized,Horizontal,center,Back,0,1,0); COMM=n=str2num(get(he1,String);,b=str2num(get(he2,String);,. dec=trdec(n,b);,set(ht,string,dec); uicontrol(hf,Style,Push,Position,0.18,0.1,0.2,0.12,. String,轉(zhuǎn) 換,Units,normalized,Call,COMM); uicontrol(hf,Style,Push,Position,0.65,0.1,0.2,0.12,. String,退 出,

30、Units,normalized,Call,close(hf);2021/3/939程序調(diào)用了trdec.m函數(shù)文件,該函數(shù)的作用是將任意十進制整數(shù)轉(zhuǎn)換為216進制字符串。trdec.m函數(shù)文件如下: function dec=trdec(n,b) ch1=0123456789ABCDEF; %十六進制的16個符號 k=1; while n=0 %不斷除某進制基數(shù)取余直到商為0 p(k)=rem(n,b); n=fix(n/b); k=k+1; end k=k-1; strdec=; while k=1 %形成某進制數(shù)的字符串 kb=p(k); strdec=strcat(strdec,ch1

31、(kb+1:kb+1); k=k-1; end dec=strdec;2021/3/940所建立的數(shù)制轉(zhuǎn)換對話框如下:2021/3/941例例2 建立圖形演示對話框。在編輯框輸入繪圖命令,單擊“繪圖”按鈕能在左邊坐標軸得到所對應(yīng)的圖形,彈出框提供色圖控制,列表框提供坐標網(wǎng)格線和坐標邊框控制。 程序如下:2021/3/942 clf; set(gcf,Unit,normalized,Position,0.2,0.3,0.65,0.35); set(gcf,Menubar,none,Name,圖形演示,NumberTitle,off); axes(Position,0.05,0.15,0.55,0

32、.7); uicontrol(gcf,Style,text, Unit,normalized,. Posi,0.63,0.85,0.2,0.1,String,輸入繪圖命令,Horizontal,center); hedit=uicontrol(gcf,Style,edit,Unit,normalized,Posi,0.63,0.15,0.2,0.68,. Max,2); %Max取2,使Max-Min1,從而允許多行輸入 hpopup=uicontrol(gcf,Style,popup,Unit,normalized,. Posi,0.85,0.8,0.15,0.15,String,Sprin

33、g|Summer|Autumn|Winter); hlist=uicontrol(gcf,Style,list,Unit,normalized,. Posi,0.85,0.55,0.15,0.25,String,Grid on|Grid off|Box on|Box off); hpush1=uicontrol(gcf,Style,push,Unit,normalized,. Posi,0.85,0.35,0.15,0.15,String,繪 圖); uicontrol(gcf,Style,push,Unit,normalized,. Posi,0.85,0.15,0.15,0.15,Stri

34、ng,關(guān) 閉,Call,close all); set(hpush1,Call,COMM(hedit,hpopup,hlist); set(hlist,Call,COMM(hedit,hpopup,hlist); set(hpopup,Call,COMM(hedit,hpopup,hlist); 2021/3/943程序調(diào)用了COMM.m函數(shù)文件, 該函數(shù)文件如下:function COMM(hedit,hpopup,hlist) com=get(hedit,String); n1=get(hpopup,Value); n2=get(hlist,Value); if isempty(com)

35、%編輯框輸入非空時 eval(com); %執(zhí)行從編輯框輸入的命令 chpop=spring,summer,autumn,winter; chlist=grid on,grid off,box on,box off; colormap(eval(chpopn1); eval(chlistn2); end所建立的圖形演示對話框如右圖所示:2021/3/944三、菜單設(shè)計三、菜單設(shè)計1. 建立用戶菜單建立用戶菜單Hm=uimenu(Hp,屬性名,屬性名1,屬性值,屬性值1,屬性,屬性名名2,屬性值,屬性值2,)功能:功能:創(chuàng)建句柄值為Hm的自定義的用戶菜單。其中Hp為其為其父對象的句柄父對象的句柄

36、,屬性名和屬性值構(gòu)成屬性二元對,定義用戶菜單的屬性。建立自定義的用戶菜單的函數(shù)為uimenu,格式為:2021/3/945 子菜單項句柄子菜單項句柄=uimenu(一級菜單項句柄,屬性名一級菜單項句柄,屬性名1,屬性值,屬性值1,屬性名,屬性名2,屬性值,屬性值2,) 因其調(diào)用方法不同,該函數(shù)可以用于建立一級菜單項和子菜單項。建立建立一級菜單項一級菜單項的函數(shù)調(diào)用格式為:的函數(shù)調(diào)用格式為:一級菜單項句柄一級菜單項句柄=uimenu(圖形窗口句柄,屬性名圖形窗口句柄,屬性名1,屬性值屬性值1,屬性名,屬性名2,屬性值,屬性值2,)建立建立子菜單項子菜單項的函數(shù)調(diào)用格式為:的函數(shù)調(diào)用格式為:202

37、1/3/9462 . 菜單對象常用屬性菜單對象常用屬性 菜單對象除具有Children(子對象),Parent(父對象),Tag(標簽),Type(類型),UserData(用戶數(shù)據(jù)),Enable(使能)和 Visible(可見性)等公共屬性,還有一些常用的特殊屬性,如回調(diào)(callback)屬性和菜單名(label)。 另外,用戶菜單的外觀有四個屬性:Position(位置),Separator(分隔線),checked(檢錄符)和ForeGroundColor(前景顏色)。 Tag屬性屬性 Tag屬性的取值是字符串,它定義了該菜單對象的一個標識值。定義了Tag屬性后,在任何程序中都可以通

38、過這個標識值找出該菜單對象。Type屬性屬性 Type屬性的取值總是uimenu,這個屬性值標明圖形對象的類型。對菜單對象,其類型就是uimenu,用戶不能改寫這個屬性。2021/3/947例例3 建立“圖形演示系統(tǒng)”菜單。菜單條中含有3個菜單項:Plot、Option和Quit。Plot中有Sine Wave和Cosine Wave兩個子菜單項,分別控制在本圖形窗口畫出正弦和余弦曲線。Option菜單項的內(nèi)容為:Grid on和Grid off控制給坐標軸加網(wǎng)格線,Box on和Box off控制給坐標軸加邊框,而且這4項只有在畫有曲線時才是可選的。Figure Color控制圖形窗口背景顏

39、色。Quit控制是否退出系統(tǒng)。程序如下: UserData屬性屬性 UserData屬性的取值是一個矩陣,缺省值為空矩陣,用戶可以在這個屬性中保存與該菜單對象相關(guān)的重要數(shù)據(jù)或信息,借此可以達到傳遞數(shù)據(jù)或信息的目的??梢杂胹et和get函數(shù)訪問該屬性。2021/3/948screen=get(0,ScreenSize);W=screen(3);H=screen(4);figure(Color,1,1,1,Position,0.2*H,0.2*H,0.6*W,0.4*H,. Name,圖形演示系統(tǒng),NumberTitle,off,MenuBar,none);%定義Plot菜單項hplot=uime

40、nu(gcf,Label,&Plot);uimenu(hplot,Label,Sine Wave,Call,t=-pi:pi/20:pi;,plot(t,sin(t);,. set(hgon,Enable,on);,set(hgoff,Enable,on);,. set(hbon,Enable,on);,set(hboff,Enable,on);); uimenu(hplot,Label,Cosine Wave,Call,t=-pi:pi/20:pi;,plot(t,cos(t);,. set(hgon,Enable,on);,set(hgoff,Enable,on);,. set(h

41、bon,Enable,on);,set(hboff,Enable,on);); %定義Option菜單項 hoption=uimenu(gcf,Label,&Option); hgon=uimenu(hoption,Label,&Grig on,Call,grid on,Enable,off); hgoff=uimenu(hoption,Label,&Grig off,Call,grid off,Enable,off); hbon=uimenu(hoption,Label,&Box on,separator,on,Call,box on,Enable,off);

42、 hboff=uimenu(hoption,Label,&Box off,Call,box off,Enable,off); hfigcor=uimenu(hoption,Label,&Figure Color,Separator,on); uimenu(hfigcor,Label,&Red,Accelerator,r,Call,set(gcf,Color,r);); uimenu(hfigcor,Label,&Blue,Accelerator,b,Call,set(gcf,Color,b);); uimenu(hfigcor,Label,&Yellow

43、,Call,set(gcf,Color,y);); uimenu(hfigcor,Label,&White,Call,set(gcf,Color,w);); %定義Quit菜單項 uimenu(gcf,Label,&Quit,Call,close(gcf);2021/3/949所建立的“圖形演示系統(tǒng)”菜單如下:2021/3/950 菜單條中含有File和Help兩個菜單項。如果選擇File中的New選項,則將顯示New Item字樣,如果選擇File中的Open選項,則將顯示出Open Item字樣。File中的Save菜單項初始時處于禁選狀態(tài),在選擇Help選項之后將此菜單項

44、恢復(fù)成可選狀態(tài),如果選擇File中的Save選項,則將出現(xiàn)一個新的菜單(三級菜單),其中共有兩個子菜單項Text file和Graphics file,如果選擇第1項,則將變量k1和k2分別賦為0和1,然后調(diào)用file01.m文件來進行相應(yīng)的處理(該文件需要另行編寫),如果選擇第2項,則將變量k1和k2分別賦為1和0,然后調(diào)用file10.m文件來進行相應(yīng)的處理(該文件也需要另行編寫)。如果選擇File中的Save As選項,則將顯示Save As Item字樣。如果選擇File中的Exit選項,則將關(guān)閉當前窗口。如果選擇Help中About 選項,則將顯示Help Item字樣,并將Save

45、 菜單設(shè)置成可選狀態(tài)。例例4 建立一個菜單系統(tǒng)。2021/3/951程序如下:screen=get(0,ScreenSize); W=screen(3);H=screen(4); hf=figure(Color,1,1,1,Position,1,1,0.4*W,0.3*H,. Name,菜單設(shè)計示例一,NumberTitle,off,MenuBar,none); hfile=uimenu(hf,label,&File); hhelp=uimenu(hf,label,&Help); uimenu(hfile,label,&New,call,disp(New Item);

46、uimenu(hfile,label,&Open,call,disp(Open Item); hsave=uimenu(hfile,label,&Save,Enable,off); uimenu(hsave,label,Text file,call,k1=0;k2=1;file01;); uimenu(hsave,label,Graphics file,call,k1=1;k2=0;file10;); uimenu(hfile,label,Save &As,call,disp(Save As Item); uimenu(hfile,label,&Exit,sep

47、arator,on,call,close(hf); uimenu(hhelp,label,About .,call,. disp(Help Item);,set(hsave,Enable,on);2021/3/952所建立的菜單系統(tǒng)如下:2021/3/9533. 快捷菜單快捷菜單利用利用set函數(shù)將該快捷菜單和某圖形對象聯(lián)系起來。函數(shù)將該快捷菜單和某圖形對象聯(lián)系起來。 快捷菜單是用鼠標右鍵單擊某對象時在屏幕上彈出的菜單。這種菜單出現(xiàn)的位置是不固定的,而且總是和某個圖形對象相聯(lián)系。 在Matlab中,可以使用uicontextmenu函數(shù)和圖形對象的UIContextMenu屬性來建立快捷菜單,

48、具體步驟為:利用利用uicontextmenu函數(shù)建立快捷菜單函數(shù)建立快捷菜單,格式為: 利用利用uimenu函數(shù)為快捷菜單建立菜單項函數(shù)為快捷菜單建立菜單項,格式為: 功能:功能:為創(chuàng)建的快捷菜單賦值,其中屬性名和屬性值構(gòu)成屬性二元對。 uimenu(快捷菜單名快捷菜單名,屬性名,屬性值,屬性名,屬性值,.)功能:功能:建立快捷菜單,并將句柄值賦給變量hc。 hc=uicontextmenu2021/3/954x=0:pi/100:2*pi;y=2*exp(-0.5*x).*sin(2*pi*x);hl=plot(x,y);hc=uicontextmenu; %建立快捷菜單hls=uimen

49、u(hc,Label,線型); %建立菜單項hlw=uimenu(hc,Label,線寬);uimenu(hls,Label,虛線,Call,set(hl,LineStyle,:););uimenu(hls,Label,實線,Call,set(hl,LineStyle,-););uimenu(hlw,Label,加寬,Call,set(hl,LineWidth,2););uimenu(hlw,Label,變細,Call,set(hl,LineWidth,0.5););set(hl,UIContextMenu,hc); %將該快捷菜單和曲線對象聯(lián)系起來例例5 繪制曲線 y=2e-0.5xsin(

50、2x),并建立一個與之相聯(lián)系的快捷菜單,用以控制曲線的線型和曲線寬度。程序如下:2021/3/9552021/3/956四、對話框設(shè)計四、對話框設(shè)計1. 公共對話框公共對話框 在圖形用戶界面程序設(shè)計中,對話框是重要的信息顯示和獲取輸入數(shù)據(jù)的用戶界面對象。使用對話框,可以使應(yīng)用程序的界面更加友好,使用更加方便。Matlab 提供了兩類對話框,一類為 Windows 的公共對話框的公共對話框,另一類為Matlab 風(fēng)格的專用對話框風(fēng)格的專用對話框。 公共對話框是利用windows資源的對話框,包括文件打開、文件保存、顏色設(shè)置、字體設(shè)置、打印設(shè)置、打印預(yù)覽、打印等。2021/3/957文件打開對話框

51、文件打開對話框uuigetfile:彈出文件打開對話框,列出當前目錄下的所有Matlab文件;uuigetfile(FilterSpec):彈出文件打開對話框,列出當前目錄下的所有由FilterSpec 指定類型的文件;uuigetfile(FilterSpec,DialogTitle):同時設(shè)置文件打開對話框的標題為DialogTitle;uuigetfile(FilterSpec,DialogTitle,x,y):x,y參數(shù)用于確定文件打開對話框的位置;ufname,pname=uigetfile():返回打開文件的文件名和路徑。用于打開文件,函數(shù)為 uigetfile,其調(diào)用格式為:20

52、21/3/958文件保存對話框文件保存對話框用于保存文件,函數(shù)為uiputfile,其調(diào)用格式為:uuiputfile:彈出文件保存對話框,列出當前目錄下的所有Matlab文件;uuiputfile(InitFile):彈出文件保存對話框,列出當前目錄下的所有由InitFile指定類型的文件;uuiputfile(InitFile,DialogTitle):同時設(shè)置文件保存對話框的標題為DialogTitle;uuiputfile(InitFile,DialogTitle,x,y):x,y參數(shù)用于確定文件保存對話框的位置;ufname,pname=uiputfile():返回保存文件的文件名和

53、路徑。2021/3/959顏色設(shè)置對話框顏色設(shè)置對話框 用于圖形對象顏色的交互式設(shè)置,函數(shù)為 uisetcolor,其調(diào)用格式為: c=uisetcolor(h_or_c,DialogTitle)輸入?yún)?shù) h_or_c 可以是一個圖形對象的句柄,也可以是一個三色 RGB 矢量, DialogTitle為顏色設(shè)置對話框的標題。2021/3/960字體設(shè)置對話框字體設(shè)置對話框用于字體屬性的交互式設(shè)置,函數(shù)為uisetfont,格式為:uuisetfont:打開字體設(shè)置對話框,返回所選擇字體的屬性;uuisetfont(h):h 為圖形對象句柄,使用字體設(shè)置對話框重新設(shè)置該對象的字體屬性;uuise

54、tfont(S):S為字體屬性結(jié)構(gòu)變量,S中包含的屬性有FontName、FontUnits、FontSize、FontWeight、FontAngle,返回重新設(shè)置的屬性值;uuisetfont(h,DialogTitle): h 為圖形對象句柄,使用字體設(shè)置對話框重新設(shè)置該對象的字體屬性,DialogTitle設(shè)置對話框的標題;u uisetfont(S,DialogTitle): S為字體屬性結(jié)構(gòu)變量,S中包含的屬性有FontName、FontUnits、FontSize、FontWeight、FontAngle,返回重新設(shè)置的屬性值, DialogTitle 設(shè)置對話框的標題;uS=u

55、isetfont():返回字體屬性值,保存在結(jié)構(gòu)變量S中。2021/3/961打印設(shè)置對話框打印設(shè)置對話框用于打印頁面的交互式設(shè)置,有兩個函數(shù):pagesetupdlg 和 pagedlg(老版本,Matlab6中仍可用)。調(diào)用格式為:udlg=pagesetupdlg(fig):fig為圖形窗口的句柄,省略時為當前圖形窗口;upagedlg:設(shè)置當前圖形窗口;upagedlg(fig):設(shè)置以fig為句柄的圖形窗口。2021/3/962打印預(yù)覽對話框打印預(yù)覽對話框用于對打印頁面進行預(yù)覽,函數(shù)為printpreview ,格式為:uprintpreview:對當前圖形窗口進行打印預(yù)覽;upri

56、ntpreview(f):對以f為句柄的圖形窗口進行打印預(yù)覽。如右圖所示,打印預(yù)覽對話框上有5個按鈕。2021/3/963打印對話框打印對話框uprintdlg:對當前圖形窗口打開Windows打印對話框;uprintdlg(fig):對以fig為句柄的圖形窗口打開Windows打印對話框;uprintdlg(-crossplatform,fig):打開crossplatform 模式的Matlab打印對話框;uprintdlg(-setup,fig):在打印設(shè)置模式下,強制打開打印對話框。為Windows的標準對話框,函數(shù)為 printdlg ,格式為:2021/3/9642. Matlab

57、專用對話框?qū)S脤υ捒?Matlab除了使用公共對話框外,還提供了一些專用對話框,包括幫助、錯誤信息、信息提示、警告信息等。uerrordlg:打開默認的錯誤信息對話框;uerrordlg(errorstring):打開顯示errorstring信息的錯誤信息對話框;uerrordlg(errorstring,dlgname):打開顯示errorstring信息的錯誤信息對話框,對話框的標題由dlgname指定;uerordlg(errorstring,dlgname,on):打開顯示errorstring信息的錯誤信息對話框,對話框的標題由dlgname指定。如果對話框已存在,on參數(shù)將對話框

58、顯示在最前端;uh=errodlg():返回對話框句柄。錯誤信息對話框錯誤信息對話框用于提示錯誤信息,函數(shù)為errordlg ,其調(diào)用格式為:2021/3/965幫助對話框幫助對話框用于幫助提示信息,函數(shù)為helpdlg ,其調(diào)用格式為:uhelpdlg:打開默認的幫助對話框;uhelpdlg(helpstring):打開顯示errorstring信息的幫助對話框;uhelpdlg(helpstring,dlgname):打開顯示errorstring 信息的幫助對話框, 對話框的標題由dlgname指定;uh=helpdlg():返回對話框句柄。例例7 helpdlg(矩陣尺寸必須相等,在線

59、幫助)例例6 errordlg(輸入錯誤,請重新輸入,錯誤信息)2021/3/966輸入對話框輸入對話框uanswer=inputdlg(prompt):打開輸入對話框,prompt為單元數(shù)組,用于定義輸入數(shù)據(jù)窗口的個數(shù)和顯示提示信息,answer為用于存儲輸入數(shù)據(jù)的單元數(shù)組;uanswer=inputdlg(prompt,title):與上者相同,title確定對話框的標題;uanswer=inputdlg(prompt,title,lineNo):參數(shù)lineNo可以是標量、列矢量或m2階矩陣,若為標量,表示每個輸入窗口的行數(shù)均為lineNo;若為列矢量,則每個輸入窗口的行數(shù)由列矢量lin

60、eNo的每個元素確定;若為矩陣,每個元素對應(yīng)一個輸入窗口,每行的第一列為輸入窗口的行數(shù),第二列為輸入窗口的寬度;uanswer=inputdlg(prompt,title,lineNo,defAns):參數(shù)defans為一個單元數(shù)組,存儲每個輸入數(shù)據(jù)的默認值,元素個數(shù)必須與prompt 所定義的輸入窗口數(shù)相同,所有元素必須是字符串;uanswer=inputdlg(prompt,title,lineNo,defAns,Resize):參數(shù)resize決定輸入對話框的大小能否被調(diào)整,可選值為on或off.用于輸入信息,函數(shù)為inputdlg ,其調(diào)用格式為:2021/3/967列表選擇對話框列表選擇對話框prompt=Input Name,Input Age;title=Input Name and Age;lines=2 1;d

溫馨提示

  • 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

提交評論