MatlabGUI設(shè)計_第1頁
MatlabGUI設(shè)計_第2頁
MatlabGUI設(shè)計_第3頁
MatlabGUI設(shè)計_第4頁
MatlabGUI設(shè)計_第5頁
已閱讀5頁,還剩56頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、課程設(shè)計(論文)課程名稱:工程機(jī)械綜合課程設(shè)計 題 目: Matlab GUI設(shè)計 院 (系): 機(jī)電工程 專業(yè)班級: 工程機(jī)械1201 姓 名: 李欣 學(xué) 號: 120730113 指導(dǎo)教師: 鄭建校 2016年 1 月 21 日 第3頁|共52頁摘要本文首先針對MATLAB新版本特有的一些編程思想、高效的編程方法、新技術(shù)進(jìn)行學(xué)習(xí),在此基礎(chǔ)上,以實際案例介紹了MATLAB在工程機(jī)械中的應(yīng)用。內(nèi)容包括:MATLAB快速入門、匿名函數(shù)類型介紹、嵌套函數(shù)類型介紹、積分以及積分方程求解案例、優(yōu)化及非線性方程(組)求解案例、高級的交互式圖形界面設(shè)計技術(shù)句柄圖形對象,GUI的組成與結(jié)構(gòu),GUI基礎(chǔ)及高級

2、設(shè)計。結(jié)合高校MATLAB利用教學(xué)和工程實際應(yīng)用的需要,從實用角度出發(fā),循序漸進(jìn)地講述MATLABI GUI設(shè)計??傮w設(shè)計軸的校核軟件的總體設(shè)計界面布局如下圖所示,主要分為2個部分:顯示區(qū)域與操作區(qū)域。顯示區(qū)域:顯示載入原圖,以顯示要計算的軸。操作區(qū)域:通過功能鍵實現(xiàn)對軸的校核計算。在截圖中可見,左下部為一系列功能按鍵如“按彎曲應(yīng)力校核”、“加載圖片”,“清除”等等;界面左部分為圖片顯示部分,界面中右方為系列功能切換選擇組。設(shè)計完成后運(yùn)行的軟件界面如下圖1:圖1,軸的校核GUI布局圖.螺栓強(qiáng)度校核軟件的總體設(shè)計界面布局如下圖所示,主要分為四個部分:兩個輸入?yún)^(qū)域與一個輸出和一個操作區(qū)域。兩個輸入

3、區(qū)域:輸入相關(guān)參數(shù)。輸出區(qū)域:輸出計算結(jié)果操作區(qū)域:通過內(nèi)部函數(shù)的計算對螺栓校核。設(shè)計完成后運(yùn)行的軟件界面如下圖2: 圖2,螺栓校核布局圖編輯框送入函數(shù),然后繪圖其布局方式如圖3. 圖3,編輯框送入函數(shù),然后繪圖的布局圖目錄第1章.設(shè)計目的1第2章.題目分析1第3章.具體設(shè)計13.1 MATLAB的基本知識13.1.1變量、基本運(yùn)算與常用數(shù)學(xué)函數(shù)13.2 Matlab GUI 相關(guān)知識73.2.1圖形句柄入門83.2.2常用的圖形句柄操作函數(shù)93.2.3圖形用戶界面設(shè)計工具的啟動103.2.4圖形用戶界面設(shè)計窗口113.2.5控件對象及屬性193.2.6菜單設(shè)計233.2.7對話框設(shè)計253.

4、3 GUI實例程序設(shè)計33心得體會46參考文獻(xiàn)47致謝48附錄49 第1章.設(shè)計目的綜合運(yùn)用MATLAB工具箱實現(xiàn)GUI程序設(shè)計在工程機(jī)械上的應(yīng)用, 利用MATLA BGUI控件編輯器在GUI設(shè)計面板上編輯軟件,設(shè)計和實現(xiàn)自己的在工程機(jī)械上的應(yīng)用軟件,來實現(xiàn)軸的校核和螺栓校核的快速計算,方便設(shè)計。 第2章.題目分析 利用matlab的GUI程序設(shè)計一個簡單實用的軸的校核的程序。該程序應(yīng)具備軸的校核的常用功能,以滿足用戶的使用需求。現(xiàn)設(shè)計程序有以下基本功能:2.1>軸的校核計算用兩種方式。2.2>根據(jù)題目要求,設(shè)計圖形用戶界面,選擇合理控件,布置合理。2.3>根據(jù)要求在相應(yīng)的回

5、調(diào)函數(shù)中添加相應(yīng)的函數(shù),要求編程習(xí)慣良好,代碼優(yōu)化。2.4>實現(xiàn)螺栓的校核。第3章.具體設(shè)計3.1 MATLAB的基本知識3.1.1變量、基本運(yùn)算與常用數(shù)學(xué)函數(shù) 在MATLAB下進(jìn)行基本數(shù)學(xué)運(yùn)算,只需將運(yùn)算式直接打入提示號(>>)之后,并按入Enter鍵即可。例如: >> (5*2+1.3-0.8)*10/25 ans =4.2000 MATLAB會將運(yùn)算結(jié)果直接存入一變數(shù)ans,代表MATLAB運(yùn)算后的答案(Answer)并顯示其數(shù)值於螢?zāi)簧稀P√崾荆?">>"是MATLAB的提示符號(Prompt),但在PC中文視窗系統(tǒng)下,由於

6、編碼方式不同,此提示符號常會消失不見,但這并不會影響到MATLAB的運(yùn)算結(jié)果。 我們也可將上述運(yùn)算式的結(jié)果設(shè)定給另一個變數(shù)x: x = (5*2+1.3-0.8)*102/25 x = 42 此時MATLAB會直接顯示x的值。由上例可知,MATLAB認(rèn)識所有一般常用到的加(+)、減(-)、乘(*)、除(/)的數(shù)學(xué)運(yùn)算符號,以及冪次運(yùn)算()。 小提示: MATLAB將所有變數(shù)均存成double的形式,所以不需經(jīng)過變數(shù)宣告(Variable declaration)。MATLAB同時也會自動進(jìn)行記憶體的使用和回收,而不必像C語言,必須由使用者一一指定.這些功能使的MATLAB易學(xué)易用,使用者可專心

7、致力於撰寫程式,而不必被軟體枝節(jié)問題所干擾。 若不想讓MATLAB每次都顯示運(yùn)算結(jié)果,只需在運(yùn)算式最后加上分號(;)即可,如下例: y = sin(10)*exp(-0.3*42); 若要顯示變數(shù)y的值,直接鍵入y即可: >>y y =-0.0045 在上例中,sin是正弦函數(shù),exp是指數(shù)函數(shù),這些都是MATLAB常用到的數(shù)學(xué)函數(shù)。下表即為MATLAB常用的基本數(shù)學(xué)函數(shù)及三角函數(shù): 小整理:MATLAB常用的基本數(shù)學(xué)函數(shù) abs(x):純量的絕對值或向量的長度 angle(z):復(fù) 數(shù)z的相角(Phase angle) sqrt(x):開平方 real(z):復(fù)數(shù)z的實部 ima

8、g(z):復(fù)數(shù)z的虛部 conj(z):復(fù)數(shù)z的共軛復(fù)數(shù) round(x):四舍五入至最近整數(shù) fix(x):無論正負(fù),舍去小數(shù)至最近整數(shù) floor(x):地板函數(shù),即舍去正小數(shù)至最近整數(shù) ceil(x):天花板函數(shù),即加入正小數(shù)至最近整數(shù) rat(x):將實數(shù)x化為分?jǐn)?shù)表示 rats(x):將實數(shù)x化為多項分?jǐn)?shù)展開 sign(x):符號函數(shù) (Signum function)。 當(dāng)x<0時,sign(x)=-1; 當(dāng)x=0時,sign(x)=0; 當(dāng)x>0時,sign(x)=1。 > 小整理:MATLAB常用的三角函數(shù) sin(x):正弦函數(shù) cos(x):馀弦函數(shù) ta

9、n(x):正切函數(shù) asin(x):反正弦函數(shù) acos(x):反馀弦函數(shù) atan(x):反正切函數(shù) atan2(x,y):四象限的反正切函數(shù) sinh(x):超越正弦函數(shù) cosh(x):超越馀弦函數(shù) tanh(x):超越正切函數(shù) asinh(x):反超越正弦函數(shù) acosh(x):反超越馀弦函數(shù) atanh(x):反超越正切函數(shù) 變數(shù)也可用來存放向量或矩陣,并進(jìn)行各種運(yùn)算,如下例的列向量(Row vector)運(yùn)算: x = 1 3 5 2; y = 2*x+1 y = 3 7 11 5 小提示:變數(shù)命名的規(guī)則 1.第一個字母必須是英文字母 2.字母間不可留空格 3.最多只能有19個字母

10、,MATLAB會忽略多馀字母 4.區(qū)分大小寫我們可以隨意更改、增加或刪除向量的元素: y(3) = 2 % 更改第三個元素 y =3 7 2 5 y(6) = 10 % 加入第六個元素 y = 3 7 2 5 0 10 y(4) = % 刪除第四個元素, y = 3 7 2 0 10 在上例中,MATLAB會忽略所有在百分比符號(%)之后的文字,因此百分比之后的文字均可視為程式的注解(Comments)。MATLAB亦可取出向量的一個元素或一部份來做運(yùn)算: x(2)*3+y(4) % 取出x的第二個元素和y的第四個元素來做運(yùn)算 ans = 9 y(2:4)-1 % 取出y的第二至第四個元素來做

11、運(yùn)算 ans = 6 1 -1 在上例中,2:4代表一個由2、3、4組成的向量 若對MATLAB函數(shù)用法有疑問,可隨時使用help來尋求線上支援(on-line help):help linspace 小整理:MATLAB的查詢命令 help:用來查詢已知命令的用法。例如已知inv是用來計算反矩陣,鍵入help inv即可得知有關(guān)inv命令的用法。(鍵入help help則顯示help的用法,請試看看?。?lookfor:用來尋找未知的命令。例如要尋找計算反矩陣的命令,可鍵入 lookfor inverse,MATLAB即會列出所有和關(guān)鍵字inverse相關(guān)的指令。找到所需的命令后 ,即可用h

12、elp進(jìn)一步找出其用法。(lookfor事實上是對所有在搜尋路徑下的M檔案進(jìn)行關(guān)鍵字對第一注解行的比對,詳見后敘。) 將列向量轉(zhuǎn)置(Transpose)后,即可得到行向量(Column vector): z = x' z = 4.0000 5.2000 6.4000 7.6000 8.8000 10.0000 不論是行向量或列向量,我們均可用相同的函數(shù)找出其元素個數(shù)、最大值、最小值等: length(z) % z的元素個數(shù) ans = 6 max(z) % z的最大值 ans = 10 min(z) % z的最小值 ans = 4 小整理:適用於向量的常用函數(shù)有: min(x): 向量

13、x的元素的最小值 max(x): 向量x的元素的最大值 mean(x): 向量x的元素的平均值 median(x): 向量x的元素的中位數(shù) std(x): 向量x的元素的標(biāo)準(zhǔn)差 diff(x): 向量x的相鄰元素的差 sort(x): 對向量x的元素進(jìn)行排序(Sorting) length(x): 向量x的元素個數(shù) norm(x): 向量x的歐氏(Euclidean)長度 sum(x): 向量x的元素總和 prod(x): 向量x的元素總乘積 cumsum(x): 向量x的累計元素總和 cumprod(x): 向量x的累計元素總乘積 dot(x, y): 向量x和y的內(nèi) 積 cross(x,

14、y): 向量x和y的外積 3.2 Matlab GUI 相關(guān)知識圖形用戶界面(GUI, Graphical User Interface )是指由窗口、菜單、圖標(biāo)、光標(biāo)、按鍵、對話框和文本等各種圖形對象組成的用戶界面。它讓用戶定制用戶與Matlab的交互方式,而命令窗口不是唯一與Matlab的交互方式。用戶界面是用戶與計算機(jī)進(jìn)行信息交流的方式。計算機(jī)在屏幕顯示圖形和文本,若有揚(yáng)聲器還可產(chǎn)生聲音。用戶通過輸入設(shè)備(如:鍵盤、鼠標(biāo)、跟蹤球、繪制板或麥克風(fēng)),與計算機(jī)通訊。用戶界面設(shè)定了如何觀看和如何感知計算機(jī)、操作系統(tǒng)或應(yīng)用程序。通常,多是根據(jù)悅目的結(jié)構(gòu)和用戶界面功能的有效性來選擇計算機(jī)或程序?;?/p>

15、本圖形對象分為控件對象和用戶界面菜單對象,簡稱控件和菜單。由上可知:用戶菜單、用戶控件和對話框是和坐標(biāo)軸處于同一層次的,都是圖形窗口的子對象 Matlab中設(shè)計圖形用戶界面的方法有兩種:使用可視化的界面環(huán)境和通過編寫程序。MATLAB的圖形用戶界面程序大多數(shù)是對話框應(yīng)用程序,利用MATLAB編寫文檔視圖應(yīng)用程序相對來說比較困難。 GUI優(yōu)點:在筆者看來GUI是以圖形作為工作元素并以鼠標(biāo)、鍵盤協(xié)同作為主要輸入工具的工作方式。GUI通常使用大量的圖標(biāo)來標(biāo)識命令,并且通過組織按鈕、工具欄、對話框等元素的方式來試圖提高界面的直觀性和易用性。通常來說,GUI由于使用了大量的圖形元素,看起來會比較美觀。而

16、且便用起來十分方便,節(jié)省不少設(shè)計時間。GUI缺點:正因為GUI是設(shè)計好的控件按鈕,所以在設(shè)計多元化這方面就有所縮水,而且在設(shè)計界面軟件方面,只能設(shè)計功能按鈕比較簡單的軟件。而且可移植性能差,要在另一個電腦上運(yùn)行的話,目標(biāo)電腦就必須有裝Matlab。3.2.1圖形句柄入門每一個圖形元件視為一個對象Object,Object都有一個獨一無二的句柄HandleRoot(屏幕)Figure(圖形窗口)Uicontextmenu對象Uimenu對象Axes坐標(biāo)軸對象Uicontrol對象Light對象Image對象Line對象Patch對象Rectangle對象Surface對象Text對象圖4,對象圖

17、Matlab中的GUI對象層次結(jié)構(gòu)如下圖所示圖5. GUI對象層次結(jié)構(gòu)圖3.2.2常用的圖形句柄操作函數(shù)在MATLAB中,只要獲得了圖形對象的句柄,就可以通過對屬性的操作來修改圖形對象的外觀,這也是MATLAB圖形用戶界面編程的基本原理。下面的語句中,findobj具有最大的通用性和實用性,適合操作UI控件和圖形對象。函數(shù)說明Findobj按照指定的屬性來獲取圖形的對象句柄Gcf獲取當(dāng)前的圖形窗口句柄Gca獲取當(dāng)前的軸對象句柄Gco獲取當(dāng)前圖形對象句柄Get獲取當(dāng)前句柄的屬性和屬性值set設(shè)置當(dāng)前句柄的屬性值3.2.3圖形用戶界面設(shè)計工具的啟動1.命令方式圖形用戶界面GUI設(shè)計工具的啟動命令為

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

19、帶坐標(biāo)軸與菜單的GUI模板); 圖6,創(chuàng)建界面u Modal Question Dialog(帶模式問題對話框的GUI模板)。當(dāng)用戶選擇不同的模板時,在GUI設(shè)計模板界面的右邊就會顯示出與該模板對應(yīng)的GUI圖形。3.2.4圖形用戶界面設(shè)計窗口在GUI設(shè)計模板中選中一個模板,然后單擊OK按鈕,就會顯示GUI設(shè)計窗口。選擇不同的GUI設(shè)計模式時,在GUI設(shè)計窗口中顯示的結(jié)果是不一樣的。圖7.GUI模板對話框菜單條文件編輯對象屬性對齊工具菜單編輯運(yùn)行按鈕工具條工作區(qū)縮放按鈕控件選擇區(qū)設(shè)計工作區(qū)圖8.GUI界面圖形用戶界面GUI設(shè)計窗口由菜單欄、工具欄、控件工具欄以及圖形對象設(shè)計區(qū)等4個功能區(qū)組成。上

20、圖為空白GUI模板情形,GUI設(shè)計窗口的菜單欄有File、Edit、View、Layout、Tools和Help 6個菜單項,使用其中的命令可以完成圖形用戶界面的設(shè)計操作。編輯工具在菜單欄的下方,提供了常用的工具;設(shè)計工具區(qū)位于窗口的左半部分,提供了設(shè)計GUI過程中所用的用戶控件;空間模板區(qū)是網(wǎng)格形式的用戶設(shè)計GUI的空白區(qū)域。 在GUI設(shè)計窗口創(chuàng)建圖形對象后,通過雙擊該對象,就會顯示該對象的屬性編輯器。用戶控件的制作用戶控件列表:對象選擇按鈕,用來選取工作區(qū)上分布的控件。單功能按鍵,按下操作代表一定的功能實現(xiàn)。雙位按鍵,代表“開”“關(guān)”兩種狀態(tài)?;コ膺x擇按鈕,多個選項互斥選擇時使用。互容選擇

21、按鈕,同時選中多個選項時使用。編輯文本框,可以自由輸入字符,編輯字符串靜態(tài)文本框,用于顯示注釋說明用文字,不可編輯?;瑒訅K,利用游標(biāo)滑動,可以獲取不同的值??丶^(qū)域框,用于對控件區(qū)域進(jìn)行標(biāo)識。列表框,提供多個可供選擇的選項,可以互容選擇。彈出框,帶有多個選項,只能選擇其中一項。軸對象,用來顯示圖形。布局編輯器(Layout editor)用于從控件選擇板上選擇控件對象并放置到布局區(qū)去,布局區(qū)被激活后就成為圖形窗口。 在命令窗口輸入GUIDE命令或點擊工具欄中的guide圖標(biāo)都可以打開空白的布局編輯器,在命令窗口輸入GUIDE filename 可打開一個已存在的名為filename圖形用戶界面

22、。1將控件對象放置到布局區(qū) 用鼠標(biāo)選擇并放置控件到布局區(qū)內(nèi); 移動控件到適當(dāng)?shù)奈恢茫?改變控件的大??; 選中多個對象的方法。圖9.簡單的示例 2激活圖形窗口如所建立的布局還沒有進(jìn)行存儲,可用File菜單下的Save As菜單項(或工具欄中的對應(yīng)項),按輸入的文件的名字,在激活圖形窗口的同時將存儲一對同名的M文件和帶有.fig擴(kuò)展名的FIG文件。 布局編輯器參數(shù)設(shè)置選File菜單下的Preferences菜單項打開參數(shù)設(shè)置窗口,點擊樹狀目錄中的GUIDE,即可以設(shè)置布局編輯器的參數(shù)。 圖10.GUI編輯器布局編輯器的彈出菜單在任一控件上按下鼠標(biāo)右鍵,會彈出一個菜單,通過該菜單可以完成布局編輯器的

23、大部分操作。圖11. 右鍵菜單位置調(diào)整工具(Alignment tool)利用位置調(diào)整工具,可以對GUI對象設(shè)計區(qū)內(nèi)的多個對象的位置進(jìn)行調(diào)整。位置調(diào)整工具的打開方式有兩種:從GUI設(shè)計窗口的工具欄上選擇Align Objects命令按鈕;選擇Tools菜單下的Align Objects.菜單項,就可以打開對象位置調(diào)整器。圖12.位置調(diào)整工具 對象位置調(diào)整器中的第一欄是垂直方向的位置調(diào)整,第二欄是水平方向的位置調(diào)整。在選中多個對象后,可以方便的通過對象位置調(diào)整器調(diào)整對象間的對齊方式和距離。用屬性查看器設(shè)置控件屬性利用對象屬性查看器,可以查看每個對象的屬性值,也可以修改、設(shè)置對象的屬性值。 打開屬

24、性查看器(Opening Property Inspector)對象屬性查看器的打開方式有四種:u 從GUI設(shè)計窗口工具欄上選擇Property Inspector命令按鈕;u 選擇View菜單下的Property Inspector菜單項;u 在命令窗口中輸入inspect;u 在控件對象上單擊鼠標(biāo)右鍵,選擇彈出菜單的Property Inspector菜單項。圖13. Property Inspector菜單項使用屬性查看器(Using Property Inspector)u 布置控件;u 定義文本框的屬性;u 定義坐標(biāo)軸的屬性;u 定義按鈕的屬性;u 定義復(fù)選框。菜單編輯器(Menu

25、Editor) 利用菜單編輯器,可以創(chuàng)建、設(shè)置、修改下拉式菜單和快捷菜單。選擇 Tools 菜單下的 Menu Editor.子菜單,即可打開菜單編輯器。 圖14. 菜單編輯器菜單編輯器包括菜單的設(shè)計和編輯,菜單編輯器有八個快捷鍵,可以利用它們?nèi)我馓砑踊騽h除菜單,可以設(shè)置菜單項的屬性,包括名稱(Label)、標(biāo)識(Tag)、選擇是否顯示分隔線(Separator above this item)、是否在菜單前加上選中標(biāo)記(Item is checked)、調(diào)用函數(shù)(Callback)。 菜單編輯器左上角的第一個按鈕用于創(chuàng)建一級菜單項。第二個按鈕用于創(chuàng)建一級菜單的子菜單。菜單編輯器的左下角有兩個

26、按鈕,選擇第一個按鈕,可以創(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è)置、修改菜單的屬性。菜單編輯器左上角的第四個與第五個按鈕用于對選中的菜單進(jìn)行左移與右移,第六與第七個按鈕用于對選中的菜單進(jìn)行上移與下移,最右邊的按鈕用于刪除選中的菜單。圖

27、16.編輯菜單對象瀏覽器(Object Browsers)利用對象瀏覽器,可以查看當(dāng)前設(shè)計階段的各個句柄圖形對象??梢栽趯ο鬄g覽器中選中一個或多個控件來打開該控件的屬性編輯器。對象瀏覽器的打開方式有: 從GUI設(shè)計窗口的工具欄上選擇Object Browser命令按鈕; 選擇View菜單下的Object Browser子菜單;圖17. 對象瀏覽器 在設(shè)計區(qū)域單擊鼠標(biāo)右鍵,選擇彈出菜單的 Object Browser。3.2.5控件對象及屬性1. GUI控件對象類型 控件對象是事件響應(yīng)的圖形界面對象。當(dāng)某一事件發(fā)生時,應(yīng)用程序會做出響應(yīng)并執(zhí)行某些預(yù)定的功能子程序(Callback)。2. 控件對

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

29、選框用來在兩種狀態(tài)之間切換,多個單選框組成一個單選框組時,用戶只能在一組狀態(tài)中選擇單一的狀態(tài),或稱為單選項;復(fù)選框(Check Boxes):單個的復(fù)選框用來在兩種狀態(tài)之間切換,多個復(fù)選框組成一個復(fù)選框組時,可使用戶在一組狀態(tài)中作組合式的選擇,或稱為多選項;文本編輯器(Editable Texts):用來使用鍵盤輸入字符串 的值,可以對編輯框中的內(nèi)容進(jìn)行編輯、刪除和替換等操作;靜態(tài)文本框(Static Texts):僅用于顯示單行的說明文字;滾動條(Slider): 可輸入指定范圍的數(shù)量值;邊框(Frames):在圖形窗口圈出一塊區(qū)域;列表框(List Boxes):在其中定義一系列可供選擇的

30、字符串;彈出式菜單(Popup Menus): 讓用戶從一列菜單項中選擇一項作為參數(shù)輸入;坐標(biāo)軸(Axes): 用于顯示圖形和圖象。3. 控件對象的屬性(Attributes of controller object)用戶可以在創(chuàng)建控件對象時,設(shè)定其屬性值,未指定時將使用系統(tǒng)缺省值。兩大類控件對象屬性:第一類是所有控件對象都具有的公共屬性,第二類是控件對象作為圖形對象所具有的屬性。 控件對象的公共屬性u Children 取值為空矩陣,因為控件對象沒有自己的子對象;u Parent取值為某個圖形窗口對象的句柄,該句柄表明了控件對象所在的圖形窗口;u Tag取值為字符串,定義了控件的標(biāo)識值,在任

31、何程序中都可以通過這個標(biāo)識值控制該控件對象;u Type 取值為uicontrol,表明圖形對象的類型;u UserDate取值為空矩陣,用于保存與該控件對象相關(guān)的重要數(shù)據(jù)和信息;u Visible取值為on 或off。 控件對象的基本控制屬性u BackgroundColor取值為顏色的預(yù)定義字符或RGB數(shù)值;缺省值為淺灰色;u Callback取值為字符串,可以是某個M文件名或一小段Matlab語句,當(dāng)用戶激活某個控件對象時,應(yīng)用程序就運(yùn)行該屬性定義的子程序;u Enable取值為on(缺省值),inactive和off;u Extend取值為四元素矢量0, 0, width, heigh

32、t,記錄控件對象標(biāo)題字符的位置和尺寸;u ForegroundColor取值為顏色的預(yù)定義字符或RGB數(shù)值,該屬性定義控件對象標(biāo)題字符的顏色;缺省值為黑色;u Max,Min取值都為數(shù)值,缺省值分別為1和0;u String取值為字符串矩陣或塊數(shù)組,定義控件對象標(biāo)題或選項內(nèi)容;u Style取值可以是pushbutton(缺省值), radiobutton, checkbox, edit, text, slider, frame, popupmenu 或listbox;u Units取值可以是pixels (缺省值), normalized(相對單位), inches, centimeters

33、(厘米)或points(磅);u Value取值可以是矢量,也可以是數(shù)值,其含義及解釋依賴于控件對象的類型。 控件對象的修飾控制屬性u FontAngle取值為normal(正體,缺省值), italic(斜體), oblique(方頭);u FontName取值為控件標(biāo)題等字體的字庫名;u FontSize取值為數(shù)值;u FontUnits取值為points(缺省值), normalized, inches, centimeters或pixels;u FontWeight取值為normal(缺省值), light,demi和bold,定義字符的粗細(xì);u HorizontalAligment取

34、值為left,center (缺省值) 或 right,定義控件對象標(biāo)題等的對齊方式。 控件對象的輔助屬性u ListboxTop取值為數(shù)量值,用于listbox控件對象;u SliderStep取值為兩元素矢量minstep,maxstep,用于slider控件對象;u Selected取值為on 或off(缺省值) ;u SlectionHoghlight取值為on 或off(缺省值) 。 Callback管理屬性u BusyAction取值為cancel或queue(缺省值) ;u ButtDownFun取值為字符串,一般為某個M文件名或一小段Matlab程序;u Creatfun 取值

35、為字符串,一般為某個M文件名或一小段Matlab程序;u DeletFun取值為字符串,一般為某個M文件名或一小段Matlab程序;u HandleVisibility取值為on(缺省值), callback或off;u Interruptible取值為on 或off(缺省值) 。4. 控件對象的建立在對話框上有各種各樣的控件,利用這些控件可以實現(xiàn)有關(guān)控制。 Matlab提供了用于建立控件對象的函數(shù)uicontrol,其調(diào)用格式為:對象句柄=uicontrol(圖形窗口句柄,屬性名1,屬性值1,屬性名2,屬性值2,)其中各個屬性名及可取的值和后面將介紹的uimenu函數(shù)相似,但也不盡相同。3.

36、2.6、菜單設(shè)計1.建立用戶菜單建立自定義的用戶菜單的函數(shù)為uimenu,格式為:Hm=uimenu(Hp,屬性名1,屬性值1,屬性名2,屬性值2,)功能:創(chuàng)建句柄值為Hm的自定義的用戶菜單。其中Hp為其父對象的句柄,屬性名和屬性值構(gòu)成屬性二元對,定義用戶菜單的屬性。因其調(diào)用方法不同,該函數(shù)可以用于建立一級菜單項和子菜單項。Ø 建立一級菜單項的函數(shù)調(diào)用格式為:一級菜單項句柄=uimenu(圖形窗口句柄,屬性名1,屬性值1,屬性名2,屬性值2,)Ø 建立子菜單項的函數(shù)調(diào)用格式為:子菜單項句柄=uimenu(一級菜單項句柄,屬性名1,屬性值1,屬性名2,屬性值2,)2 . 菜單

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

38、屬性的取值總是uimenu,這個屬性值標(biāo)明圖形對象的類型。對菜單對象,其類型就是uimenu,用戶不能改寫這個屬性。 UserData屬性UserData屬性的取值是一個矩陣,缺省值為空矩陣,用戶可以在這個屬性中保存與該菜單對象相關(guān)的重要數(shù)據(jù)或信息,借此可以達(dá)到傳遞數(shù)據(jù)或信息的目的??梢杂胹et和get函數(shù)訪問該屬性。3. 快捷菜單 快捷菜單是用鼠標(biāo)右鍵單擊某對象時在屏幕上彈出的菜單。這種菜單出現(xiàn)的位置是不固定的,而且總是和某個圖形對象相聯(lián)系。 在Matlab中,可以使用uicontextmenu函數(shù)和圖形對象的UIContextMenu屬性來建立快捷菜單,具體步驟為:(1)利用uiconte

39、xtmenu函數(shù)建立快捷菜單,格式為:hc=uicontextmenu功能:建立快捷菜單,并將句柄值賦給變量hc。(2)利用uimenu函數(shù)為快捷菜單建立菜單項,格式為:uimenu(快捷菜單名,屬性名,屬性值,.)功能:為創(chuàng)建的快捷菜單賦值,其中屬性名和屬性值構(gòu)成屬性二元對。(3)利用set函數(shù)將該快捷菜單和某圖形對象聯(lián)系起來。3.2.7 對話框設(shè)計在圖形用戶界面程序設(shè)計中,對話框是重要的信息顯示和獲取輸入數(shù)據(jù)的用戶界面對象。使用對話框,可以使應(yīng)用程序的界面更加友好,使用更加方便。Matlab 提供了兩類對話框,一類為 Windows 的公共對話框,另一類為Matlab 風(fēng)格的專用對話框。公

40、共對話框公共對話框是利用windows資源的對話框,包括文件打開、文件保存、顏色設(shè)置、字體設(shè)置、打印設(shè)置、打印預(yù)覽、打印等。文件打開對話框用于打開文件,函數(shù)為 uigetfile,其調(diào)用格式為:u uigetfile:彈出文件打開對話框,列出當(dāng)前目錄下的所有Matlab文件;u uigetfile(FilterSpec):彈出文件打開對話框,列出當(dāng)前目錄下的所有由FilterSpec 指定類型的文件;u uigetfile(FilterSpec,DialogTitle):同時設(shè)置文件打開對話框的標(biāo)題為DialogTitle;u uigetfile(FilterSpec,DialogTitle,

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

42、,y參數(shù)用于確定文件保存對話框的位置;u fname,pname=uiputfile():返回保存文件的文件名和路徑。 顏色設(shè)置對話框用于圖形對象顏色的交互式設(shè)置,函數(shù)為 uisetcolor,其調(diào)用格式為:c=uisetcolor(h_or_c,DialogTitle)輸入?yún)?shù) h_or_c 可以是一個圖形對象的句柄,也可以是一個三色 RGB 矢量, DialogTitle為顏色設(shè)置對話框的標(biāo)題。 字體設(shè)置對話框用于字體屬性的交互式設(shè)置,函數(shù)為uisetfont,格式為:u uisetfont:打開字體設(shè)置對話框,返回所選擇字體的屬性;u uisetfont(h):h 為圖形對象句柄,使用字

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

44、 DialogTitle 設(shè)置對話框的標(biāo)題;u S=uisetfont():返回字體屬性值,保存在結(jié)構(gòu)變量S中。 打印設(shè)置對話框用于打印頁面的交互式設(shè)置,有兩個函數(shù):pagesetupdlg 和 pagedlg(老版本,Matlab6中仍可用)。調(diào)用格式為:u dlg=pagesetupdlg(fig):fig為圖形窗口的句柄,省略時為當(dāng)前圖形窗口;u pagedlg:設(shè)置當(dāng)前圖形窗口;u pagedlg(fig):設(shè)置以fig為句柄的圖形窗口。圖18.page setup窗口圖19. Page選項 打印預(yù)覽對話框用于對打印頁面進(jìn)行預(yù)覽,函數(shù)為printpreview ,格式為:u print

45、preview:對當(dāng)前圖形窗口進(jìn)行打印預(yù)覽;u printpreview(f):對以f為句柄的圖形窗口進(jìn)行打印預(yù)覽。 打印對話框為Windows的標(biāo)準(zhǔn)對話框,函數(shù)為 printdlg ,格式為:u printdlg:對當(dāng)前圖形窗口打開Windows打印對話框;u printdlg(fig):對以fig為句柄的圖形窗口打開Windows打印對話框;u printdlg(-crossplatform,fig):打開crossplatform 模式的Matlab打印對話框;u printdlg(-setup,fig):在打印設(shè)置模式下,強(qiáng)制打開打印對話框。2. Matlab專用對話框 Matlab除

46、了使用公共對話框外,還提供了一些專用對話框,包括幫助、錯誤信息、信息提示、警告信息等。 錯誤信息對話框用于提示錯誤信息,函數(shù)為errordlg ,其調(diào)用格式為:u errordlg:打開默認(rèn)的錯誤信息對話框;u errordlg(errorstring):打開顯示errorstring信息的錯誤信息對話框;u errordlg(errorstring,dlgname):打開顯示errorstring信息的錯誤信息對話框,對話框的標(biāo)題由dlgname指定;u erordlg(errorstring,dlgname,on):打開顯示errorstring信息的錯誤信息對話框,對話框的標(biāo)題由dlgn

47、ame指定。如果對話框已存在,on參數(shù)將對話框顯示在最前端;u h=errodlg():返回對話框句柄。例6 errordlg('輸入錯誤,請重新輸入','錯誤信息')圖20.錯誤對話框 幫助對話框用于幫助提示信息,函數(shù)為helpdlg ,其調(diào)用格式為:u helpdlg:打開默認(rèn)的幫助對話框;u helpdlg(helpstring):打開顯示errorstring信息的幫助對話框;u helpdlg(helpstring,dlgname):打開顯示errorstring 信息的幫助對話框, 對話框的標(biāo)題由dlgname指定;u h=helpdlg():返回對

48、話框句柄。例7 helpdlg('幫助例子','在線幫助')圖21.幫助對話框 輸入對話框用于輸入信息,函數(shù)為inputdlg ,其調(diào)用格式為:u answer=inputdlg(prompt):打開輸入對話框,prompt為單元數(shù)組,用于定義輸入數(shù)據(jù)窗口的個數(shù)和顯示提示信息,answer為用于存儲輸入數(shù)據(jù)的單元數(shù)組;u answer=inputdlg(prompt,title):與上者相同,title確定對話框的標(biāo)題;u answer=inputdlg(prompt,title,lineNo):參數(shù)lineNo可以是標(biāo)量、列矢量或m×2階矩陣,若為標(biāo)

49、量,表示每個輸入窗口的行數(shù)均為lineNo;若為列矢量,則每個輸入窗口的行數(shù)由列矢量lineNo的每個元素確定;若為矩陣,每個元素對應(yīng)一個輸入窗口,每行的第一列為輸入窗口的行數(shù),第二列為輸入窗口的寬度;u answer=inputdlg(prompt,title,lineNo,defAns):參數(shù)defans為一個單元數(shù)組,存儲每個輸入數(shù)據(jù)的默認(rèn)值,元素個數(shù)必須與prompt 所定義的輸入窗口數(shù)相同,所有元素必須是字符串;u answer=inputdlg(prompt,title,lineNo,defAns,Resize):參數(shù)resize決定輸入對話框的大小能否被調(diào)整,可選值為on或off

50、. 列表選擇對話框用于在多個選項中選擇需要的值,函數(shù)為listdlg,其調(diào)用格式為:selection,ok=listdlg(Liststring,S,)輸出參數(shù)selection為一個矢量,存儲所選擇的列表項的索引號,輸入?yún)?shù)為可選項Liststring(字符單元數(shù)組), SelectionMode(single或multiple(缺省值), ListSize(wight,height), Name (對話框標(biāo)題)等。 信息提示對話框用于顯示提示信息,函數(shù)為msgbox ,其調(diào)用格式為:u msgbox(message):打開信息提示對話框,顯示message信息;u msgbox(mess

51、age,title):title確定對話框標(biāo)題;u msgbox(message,title,icon): icon用于顯示圖標(biāo),可選圖標(biāo)包括:none(無圖標(biāo),缺省值)、error、help、warn或custom(用戶定義);u msgbox(message,title,custom,icondata,iconcmap):當(dāng)使用用戶定義圖標(biāo)時,iconData為定義圖標(biāo)的圖像數(shù)據(jù),iconCmap為圖像的色彩圖;u msgbox(,creatmode):選擇模式creatMode,選項為:modal, non-modal 和replace;u h=msgbox():返回對話框句柄。 問題提

52、示對話框用于回答問題的多種選擇,函數(shù)為questdlg,格式為:u button=questdlg(qstring):打開問題提示對話框,有三個按鈕,分別為:Yes,No和Cancel,questdlg確定提示信息;u button=questdlg(qstring,title): title確定對話框標(biāo)題;u button=questdlg(qstringtitle,default):當(dāng)按回車鍵時,返回default的值,default 必須是Yes,No或Cancel 之一;u button=questdlg(qstring,title,str1,str2,default):打開問題提示對

53、話框,有兩個按鈕,分別由str1和str2確定,qstdlg確定提示信息, title確定對話框標(biāo)題,default必須是str1或str2之一;u button=questdlg(qstring, title,str1,str2,str3,default): 打開問題提示對話框,有三個按鈕,分別由str1, str2和str3確定,qstdlg確定提示信息, title確定對話框標(biāo)題,default必須是str1, str2或str3之一。 進(jìn)程條以圖形方式顯示運(yùn)算或處理的進(jìn)程,函數(shù)為waitbar,其調(diào)用格式為:u h=waitbar(x,title):顯示以title為標(biāo)題的進(jìn)程條,x為

54、進(jìn)程條的比例長度,其值必須在0到1之間,h為返回的進(jìn)程條對象的句柄;u waitbar(x,title,creatcancelbtn,button_callback):在進(jìn)程條上使用CreatCancelBtn參數(shù)創(chuàng)建一個撤銷按鈕,在進(jìn)程中按下撤銷按鈕將調(diào)用button_callback函數(shù);u waitbar(,property_name,property_value,):選擇其它由property_name定義的參數(shù),參數(shù)值由property_value指定。例9 創(chuàng)建并使用進(jìn)程條。h=waitbar(0,'pleas wait.');for i=1:10000 waitbar(i/10000,h)end close(h) 圖22.進(jìn)度條 警告信息對話框用于

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論