版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
七.圖形用戶(hù)界面實(shí)用文檔本章主要內(nèi)容圖形用戶(hù)界面的設(shè)計(jì)原則和一般步驟圖形用戶(hù)界面設(shè)計(jì)圖形用戶(hù)界面設(shè)計(jì)工具應(yīng)用M函數(shù)文件實(shí)現(xiàn)圖形用戶(hù)界面實(shí)用文檔7.1圖形用戶(hù)界面的設(shè)計(jì)原則和一般步驟圖形用戶(hù)界面就是通過(guò)窗口、選單、按鈕、文字說(shuō)明等對(duì)象構(gòu)成一個(gè)美觀的界面,提供用戶(hù)利用鼠標(biāo)或鍵盤(pán)方便地實(shí)現(xiàn)操作。MATLAB設(shè)計(jì)圖形用戶(hù)界面的方法有兩種:使用可視化的界面環(huán)境(圖形用戶(hù)界面設(shè)計(jì)工具)和通過(guò)編寫(xiě)程序。
實(shí)用文檔7.1.1設(shè)計(jì)原則1.簡(jiǎn)單性設(shè)計(jì)界面時(shí),應(yīng)力求簡(jiǎn)捷、直觀、清晰地體現(xiàn)出界面的功能和特征。窗口數(shù)目盡量少,力避不同窗口間來(lái)回切換;多采用圖形,少用數(shù)值;不要出現(xiàn)可有可無(wú)的功能。實(shí)用文檔7.1.1設(shè)計(jì)原則(續(xù))2.一致性?xún)蓪雍x:一指自己設(shè)計(jì)的界面風(fēng)格要盡量一致;二指新設(shè)計(jì)的界面要與其他已有的界面風(fēng)格要一致。一般習(xí)慣圖形區(qū)在界面左側(cè),控制區(qū)在右側(cè)。實(shí)用文檔7.1.1設(shè)計(jì)原則(續(xù))3.習(xí)常性設(shè)計(jì)界面時(shí),應(yīng)盡量使用人們所熟悉的標(biāo)志和符號(hào),便于用戶(hù)使用。4.其他考慮因素
除了以上靜態(tài)性能之外,還應(yīng)注意界面的動(dòng)態(tài)性能:界面對(duì)用戶(hù)操作的響應(yīng)要迅速、連續(xù);對(duì)持續(xù)時(shí)間較長(zhǎng)的運(yùn)算要給出等待時(shí)間提示,并允許用戶(hù)中斷運(yùn)算。實(shí)用文檔7.1.2一般制作步驟界面制作包括界面設(shè)計(jì)和程序?qū)崿F(xiàn)。分析界面所要實(shí)現(xiàn)的主要功能,明確設(shè)計(jì)任務(wù);繪界面草圖,注意從使用者的角度來(lái)考慮界面布局;按構(gòu)思的草圖,上機(jī)制作靜態(tài)界面;編寫(xiě)界面動(dòng)態(tài)功能程序。實(shí)用文檔7.2圖形用戶(hù)界面設(shè)計(jì)7.2.1可視化的界面環(huán)境MATLAB6.5版本提供的GUI設(shè)計(jì)工具較前面的版本有較大的改善,設(shè)計(jì)界面變化很大。打開(kāi)GUI設(shè)計(jì)工具的方法有以下幾種:(1)選擇菜單“File”——“New”——“GUI”命令;(2)在指令窗口輸入以下命令:
guide
打開(kāi)空白設(shè)計(jì)工作臺(tái)
guideFN在工作臺(tái)中打開(kāi)文件名為FN的用戶(hù)界面注意:在guide指令作用下,待打開(kāi)的文件名不分字母的大小寫(xiě)。實(shí)用文檔7.2圖形用戶(hù)界面設(shè)計(jì)(續(xù))打開(kāi)的GUI啟動(dòng)界面提供新建界面(CreateNewGUI)和打開(kāi)已有界面文件(OpenExistingGUI)的屬性頁(yè)。新建界面可以選擇空白界面、包含有控件的模板界面、包含有軸對(duì)象和菜單的模板界面、標(biāo)準(zhǔn)詢(xún)問(wèn)窗口等選項(xiàng)。選擇任意一項(xiàng)都會(huì)打開(kāi)GUI設(shè)計(jì)工作臺(tái),對(duì)界面靜態(tài)組成部分進(jìn)行的具體的修改工作都是在工作臺(tái)實(shí)現(xiàn)的。實(shí)用文檔7.2圖形用戶(hù)界面設(shè)計(jì)(續(xù))如在指令窗鍵入:guide,則可得到如下GUI設(shè)計(jì)工具的啟動(dòng)界面:空白界面有控件的模板界面有軸對(duì)象和菜單的模板界面標(biāo)準(zhǔn)詢(xún)問(wèn)窗口實(shí)用文檔7.2圖形用戶(hù)界面設(shè)計(jì)(續(xù))若激活打開(kāi)已有界面文件(OpenExistingGUI)的屬性頁(yè),則可通過(guò)打開(kāi)文件瀏覽器(Browse)選定需打開(kāi)文件并打開(kāi),主窗口則顯示最近打開(kāi)的界面文件的列表。最近打開(kāi)的界面文件列表打開(kāi)文件瀏覽器實(shí)用文檔7.2圖形用戶(hù)界面設(shè)計(jì)(續(xù))如在新建界面中選擇“BlankGUI(Default)”,然后單擊“OK”按鈕,就會(huì)出現(xiàn)如下的GUI設(shè)計(jì)工作臺(tái):實(shí)用文檔7.2圖形用戶(hù)界面設(shè)計(jì)(續(xù))GUI設(shè)計(jì)工作臺(tái)有4個(gè)功能區(qū):菜單條、編輯工具條、控件模板區(qū)、設(shè)計(jì)工作區(qū)。菜單條編輯工具條控件模板區(qū)設(shè)計(jì)工作區(qū)實(shí)用文檔7.2圖形用戶(hù)界面設(shè)計(jì)(續(xù))在工具欄主要提供了六個(gè)工具:對(duì)象對(duì)齊工具、菜單編輯器、文件編輯器、屬性編輯器、界面激活工具和對(duì)象瀏覽器,單擊這六個(gè)按鈕就會(huì)出現(xiàn)相應(yīng)的窗口。對(duì)象對(duì)齊工具菜單編輯器文件編輯器屬性編輯器對(duì)象瀏覽器運(yùn)行界面實(shí)用文檔7.2.2創(chuàng)建用戶(hù)菜單1.菜單編輯在GUI設(shè)計(jì)工作臺(tái)的菜單條選擇“Tool”-”MenuEditor…”或單擊工具欄“MenuEditor”按鈕,就會(huì)出現(xiàn)菜單編輯器窗口。新建菜單新建子菜單菜單左、右移菜單上、下移刪除菜單填寫(xiě)菜單名,如果在前面加“&”符號(hào)則加快捷鍵,當(dāng)運(yùn)行時(shí)第一個(gè)字母會(huì)加下劃線(xiàn),以便用戶(hù)快速激活菜單項(xiàng)標(biāo)記分隔符初值是否已選輸入回調(diào)函數(shù)實(shí)用文檔7.2.2創(chuàng)建用戶(hù)菜單(續(xù))2.通過(guò)uimenu命令創(chuàng)建菜單h_menu=uimenu(h_parent,’PropertyName’,ProperValue,…)>>h_menu=uimenu(h_fig,’lable’,’paint’)%創(chuàng)建菜單paint實(shí)用文檔7.2.3控件的使用1.常用控件詳見(jiàn)下表所示:實(shí)用文檔
控件名PropertyName功能按鈕PushButton最常用的控件,用于響應(yīng)用戶(hù)的鼠標(biāo)單擊,按鈕上有說(shuō)明文字說(shuō)明其作用。切換按鈕ToggleButton當(dāng)單擊時(shí)會(huì)凹凸?fàn)顟B(tài)切換。單選按鈕RadioButton當(dāng)單擊時(shí)會(huì)用黑白點(diǎn)切換,總是成組出現(xiàn),多個(gè)單選按鈕互斥,一組中只有一個(gè)被選中。復(fù)選框CheckBox當(dāng)單擊時(shí)會(huì)用√切換,有選中、不選中和不確定等狀態(tài),總是成組出現(xiàn),多個(gè)復(fù)選框可同時(shí)選用。文本框EditText凹形方框,可隨意輸入和編輯單行和多行文字,并顯示出來(lái)。靜態(tài)文本框StaticText用于顯示文字信息,但不接受輸入。滾動(dòng)條Slider可以用圖示的方式顯示在一個(gè)范圍內(nèi)數(shù)值的大概值范圍,用戶(hù)可以移動(dòng)滾動(dòng)條改變數(shù)值。框架Frame將一組控件圍在框架中,用于裝飾界面。列表框ListBox顯示下拉文字列表,用戶(hù)可以從列表中選擇一項(xiàng)和多項(xiàng)。彈出式菜單PopupMenu相當(dāng)于文本框和列表框的組合,用戶(hù)可以從下拉列表中選擇。坐標(biāo)軸Axes用于繪制坐標(biāo)軸。實(shí)用文檔7.2.3控件的使用(續(xù))2.控件的創(chuàng)建(1)在可視化界面環(huán)境中創(chuàng)建控件在可視化界面環(huán)境中創(chuàng)建控件很簡(jiǎn)單,就是在控件模板區(qū)中選中控件,然后拖放到設(shè)計(jì)工作區(qū)即可。
實(shí)用文檔7.2.3控件的使用(續(xù))(2)用uicontrol命令創(chuàng)建控件
h_control=uicontrol(h_Parent,’PropertyName’,ProperValue,…)實(shí)用文檔7.2.3控件的使用(續(xù))3.控件的常用屬性創(chuàng)建控件以后,需要對(duì)控件的各種屬性進(jìn)行設(shè)置,大部分控件都具有以下屬性。(1)string屬性:用于顯示在控件上的字符串,起說(shuō)明或提示作用。(2)callback屬性:回調(diào)函數(shù),與菜單的一樣。(3)enable屬性:表示該控件是否有效,”on“表示有效,”off“表示無(wú)效。(4)tooltipstring屬性:當(dāng)鼠標(biāo)放在控件上時(shí)顯示提示信息,為字符串。(5)字體屬性:包括fontname,fontsize等。(6)Tag屬性:控件的標(biāo)記,用于標(biāo)識(shí)控件。實(shí)用文檔7.2.4對(duì)象對(duì)齊工具、屬性編輯器和對(duì)象瀏覽器對(duì)象對(duì)齊工具用來(lái)將用戶(hù)界面的多個(gè)控件對(duì)齊;通過(guò)對(duì)象瀏覽器可以查看用戶(hù)界面中的所有對(duì)象;在屬性編輯器中可以設(shè)置和查看對(duì)象的各種屬性。實(shí)用文檔7.2.5回調(diào)函數(shù)實(shí)現(xiàn)GUI的基本機(jī)制是對(duì)控件的屬性編程。在設(shè)計(jì)界面中選定需要編寫(xiě)回調(diào)函數(shù)的對(duì)象,然后選擇菜單”View”-“ObjectCallbacks”,就會(huì)出現(xiàn)4個(gè)子菜單,都是用來(lái)編寫(xiě)回調(diào)函數(shù)的。當(dāng)選擇各選單項(xiàng)時(shí),MATLAB會(huì)提醒用戶(hù)保存設(shè)計(jì)的界面,然后打開(kāi)M文件編輯器/調(diào)試器,可看到機(jī)器自動(dòng)生成了一個(gè)函數(shù)文件,用戶(hù)即可在該文件中帶%--標(biāo)記的行填寫(xiě)回調(diào)指令,其余指令用戶(hù)不必也不能更改。實(shí)用文檔7.3圖形用戶(hù)界面設(shè)計(jì)工具應(yīng)用【例7-1】利用GUI工具設(shè)計(jì)用戶(hù)界面。該界面具有以下功能:(1)在編輯框中,可輸入表示阻尼比的標(biāo)量或“行數(shù)組”數(shù)值,并在按【enter】鍵后,在軸上畫(huà)出相應(yīng)的藍(lán)色曲線(xiàn)(坐標(biāo)范圍:X軸[0,15];Y軸[0,2])。(2)在點(diǎn)擊【Gridon】或【Gridoff】鍵時(shí),在軸上畫(huà)出或刪除“分格線(xiàn)”;缺省時(shí)無(wú)分格線(xiàn)。(3)在菜單【Options】下,有2個(gè)下拉菜單【Boxon】和【Boxoff】;缺省時(shí)為Boxoff狀態(tài)。(4)所設(shè)計(jì)的界面和其上圖形對(duì)象、控件對(duì)象都按比例縮放。實(shí)用文檔7.3圖形用戶(hù)界面設(shè)計(jì)工具應(yīng)用(續(xù))界面最終效果圖如下所示:實(shí)用文檔7.3圖形用戶(hù)界面設(shè)計(jì)工具應(yīng)用(續(xù))由于本例的設(shè)計(jì)界面清晰、要求明確,所以無(wú)需進(jìn)行功能分析和繪制草圖,而可直接進(jìn)入界面制作階段。實(shí)用文檔7.3圖形用戶(hù)界面設(shè)計(jì)工具應(yīng)用(續(xù))使用“guide”命令啟動(dòng)GUI界面,選擇“BlankGUI”出現(xiàn)GUI設(shè)計(jì)工作臺(tái),調(diào)整圖形大小,將界面窗口左邊的控件模板區(qū)中的控件拖放到設(shè)計(jì)工作區(qū)中。放置以下控件:一個(gè)坐標(biāo)軸、兩個(gè)靜態(tài)文本框、一個(gè)可編輯文本框、兩個(gè)按鈕;然后打開(kāi)對(duì)象對(duì)齊工具對(duì)齊各控件,界面布局如下圖。實(shí)用文檔7.3圖形用戶(hù)界面設(shè)計(jì)工具應(yīng)用(續(xù))實(shí)用文檔7.3圖形用戶(hù)界面設(shè)計(jì)工具應(yīng)用(續(xù))2.設(shè)置控件屬性雙擊工作區(qū)及控件可引出圖形窗和相應(yīng)控件的“屬性編輯框(PropertyInspector)”。在圖形窗的屬性編輯框中,設(shè)置如下屬性值:NameMyguil%圖形窗的名稱(chēng)Resizeon%圖形窗可以縮放Tagfiguer1
%生成handles.figure1域存放圖形窗句柄實(shí)用文檔7.3圖形用戶(hù)界面設(shè)計(jì)工具應(yīng)用(續(xù))在軸屬性編輯框中,設(shè)置如下屬性值:Unitsnormalized%采用相對(duì)度量單位,縮放時(shí)保持比例Boxoff%坐標(biāo)軸不封閉Tagaxes1%生成handles.axes1域存放軸句柄XLim[0,15]%X軸范圍YLim[0,2]%Y軸范圍實(shí)用文檔7.3圖形用戶(hù)界面設(shè)計(jì)工具應(yīng)用(續(xù))在圖形區(qū)上方的靜態(tài)文本的屬性編輯框中,設(shè)置如下屬性值:Fontsize0.696%字體大小FontUnitsnormaliszed%采用相對(duì)度量單位,縮放時(shí)保持字體比例String歸一化二階系統(tǒng)的階躍響應(yīng)曲線(xiàn)%顯示在界面上的字符Tagtitle_text%生成handles.title_text域存放靜態(tài)文本句柄HorizontalAlignmentCenter%文字中心對(duì)齊Unitsnormalized%采用相對(duì)度量單位,縮放時(shí)保持該區(qū)比例實(shí)用文檔7.3圖形用戶(hù)界面設(shè)計(jì)工具應(yīng)用(續(xù))在可編輯文本上方的靜態(tài)文本的屬性編輯框中,設(shè)置如下屬性值:Fontsize0.351%字體大小FontUnitsnormaliszed%采用相對(duì)度量單位,縮放時(shí)保持字體比例HorizontalAlignmentCenter%文字中心對(duì)齊String系統(tǒng)阻尼比%顯示在界面上的字符Tagedit_text%生成handles.edit_text域存放靜態(tài)文本句柄Unitsnormalized%采用相對(duì)度量單位,縮放時(shí)保持該區(qū)比例實(shí)用文檔7.3圖形用戶(hù)界面設(shè)計(jì)工具應(yīng)用(續(xù))在可編輯文本的屬性編輯框中,設(shè)置如下屬性值:Fontsize0.626%字體大小FontUnitsnormaliszed%采用相對(duì)度量單位,縮放時(shí)保持字體比例HorizontalAlignmentCenter%文字中心對(duì)齊String%在界面上顯示為空白Tagzeta_edit%生成handles.zeta_edit域存放彈出式選單句柄Unitsnormalized%采用相對(duì)度量單位,縮放時(shí)保持該區(qū)比例實(shí)用文檔7.3圖形用戶(hù)界面設(shè)計(jì)工具應(yīng)用(續(xù))在上按鍵的屬性編輯框中,設(shè)置如下屬性值:Fontsize0.485%字體大小FontUnitsnormaliszed%采用相對(duì)度量單位,縮放時(shí)保持字體比例HorizontalAlignmentCenter%文字中心對(duì)齊StringGridon%在按鍵上顯示GridonTagGridOn_push%生成handles.GridOn_push域存放該鍵句柄Unitsnormalized%采用相對(duì)度量單位,縮放時(shí)保持該鍵比例實(shí)用文檔7.3圖形用戶(hù)界面設(shè)計(jì)工具應(yīng)用(續(xù))在下按鍵的屬性編輯框中,設(shè)置如下屬性值:Fontsize0.485%字體大小FontUnitsnormaliszed%采用相對(duì)度量單位,縮放時(shí)保持字體比例HorizontalAlignmentCenter%文字中心對(duì)齊StringGridoff%在按鍵上顯示GridoffTagGridOff_push%生成handles.GridOff_push域存放該鍵句柄Unitsnormalized%采用相對(duì)度量單位,縮放時(shí)保持該鍵比例實(shí)用文檔7.3圖形用戶(hù)界面設(shè)計(jì)工具應(yīng)用(續(xù))3.精細(xì)調(diào)整控件的大小及其相對(duì)位置直接拖拉控件調(diào)整其大??;通過(guò)對(duì)象對(duì)齊工具將控件擺放整齊。4.創(chuàng)建菜單點(diǎn)擊“菜單編輯器”圖標(biāo),引出空白菜單編輯對(duì)話(huà)窗,再點(diǎn)擊該對(duì)話(huà)窗最左上方的“新菜單NewMenu”圖標(biāo),在左側(cè)空白窗口中,出現(xiàn)”Untitled1”圖標(biāo);點(diǎn)擊此圖標(biāo)則在右側(cè)引出填寫(xiě)欄,在“l(fā)able”中填寫(xiě)Options;在“Tag”中填寫(xiě)options,于是左側(cè)的”Untitled1”圖標(biāo)變成“Options”圖標(biāo),表示此菜單已生成。實(shí)用文檔7.3圖形用戶(hù)界面設(shè)計(jì)工具應(yīng)用(續(xù))先點(diǎn)亮左側(cè)的“Option”圖標(biāo),再點(diǎn)擊菜單編輯對(duì)話(huà)窗上的“新菜單項(xiàng)NewMenuItem”圖標(biāo),就引出等待定義的菜單項(xiàng);在右側(cè)的“Label”中填寫(xiě)B(tài)oxon,在“Tag”中填寫(xiě)box_on。重復(fù)該小步操作,建立另一個(gè)菜單項(xiàng)Boxoff。注意:菜單編輯對(duì)話(huà)窗上的“Callback”不要填寫(xiě),機(jī)器自動(dòng)生成。實(shí)用文檔7.3圖形用戶(hù)界面設(shè)計(jì)工具應(yīng)用(續(xù))5.界面的激活和回調(diào)函數(shù)的生成點(diǎn)擊工作臺(tái)上的”運(yùn)行界面“的工具圖標(biāo),會(huì)出現(xiàn)一個(gè)詢(xún)問(wèn)對(duì)話(huà)框,當(dāng)按提示對(duì)以上的設(shè)計(jì)進(jìn)行存儲(chǔ)以后,就會(huì)引出2個(gè)界面:名為Myguil的(待激活的)圖形用戶(hù)界面;展示名為Myguil的(待填寫(xiě)回調(diào)指令的)M函數(shù)文件的文件編輯器界面。同時(shí),在當(dāng)前目錄或給定目錄上,由MATLAB自動(dòng)生成了2個(gè)文件,即Myguil.fig和Myguil.m。實(shí)用文檔7.3圖形用戶(hù)界面設(shè)計(jì)工具應(yīng)用(續(xù))在Myguil.m文件中,填寫(xiě)回調(diào)指令:functionvarargout=zeta_edit_Callback(hObject,eventdata,handles,varargin)z=str2num(get(handles.zeta_edit,‘String’))%從編輯框中獲取zeta數(shù)據(jù)t=0:0.1:15;%設(shè)置時(shí)間采樣數(shù)組cla%clearcurrentaxisfork=1:length(z)y(:,k)=step(1,[1,2*z(k),1],t);%計(jì)算階躍輸出line(t,y(:,k));%繪制曲線(xiàn)end實(shí)用文檔7.3圖形用戶(hù)界面設(shè)計(jì)工具應(yīng)用(續(xù))Functionvarargout=GridOn_push_Callback(hObject,eventdata,handles,varargin)gridon%配合Gridon按鍵操作的指令functionvarargout=GridOff_push_Callback(hObject,eventdata,handles,varargin)gridoff%配合Gridoff按鍵操作的指令實(shí)用文檔7.3圖形用戶(hù)界面設(shè)計(jì)工具應(yīng)用(續(xù))functionvarargout=box_on_Callback(hObject,eventdata,handles,varargin)boxon%配合菜單Boxon的操作指令set(handles.box_on,‘enable’,‘off’)%使菜單項(xiàng)Boxon失能set(handles.box_off,‘enable’,‘on’)%使菜單項(xiàng)Boxoff使能實(shí)用文檔7.3圖形用戶(hù)界面設(shè)計(jì)工具應(yīng)用(續(xù))functionvarargout=box_off_Callback(hObject,eventdata,handles,varargin)boxoff%配合菜單Boxoff的操作指令set(handles.box_off,‘enable’,‘off’)%使菜單項(xiàng)Boxoff失能set(handles.box_on,‘enable’,‘on’)%使菜單項(xiàng)Boxon使能實(shí)用文檔7.3圖形用戶(hù)界面設(shè)計(jì)工具應(yīng)用(續(xù))注意:在填寫(xiě)回調(diào)函數(shù)時(shí),只有帶%---標(biāo)記的那些行指令是用戶(hù)為滿(mǎn)足設(shè)計(jì)要求而填寫(xiě)的,其余指令都是機(jī)器自動(dòng)生成的,用戶(hù)不必也不能更改6.圖形用戶(hù)界面的使用經(jīng)過(guò)以上幾個(gè)步驟生成的圖形用戶(hù)界面已經(jīng)可以使用了,只要Myguil.m和Myguil.fig在當(dāng)前目錄或在MATLAB搜索路徑上,那么在指令窗運(yùn)行Myguil就能使用該界面。生成的界面如下圖所示:實(shí)用文檔7.3圖形用戶(hù)界面設(shè)計(jì)工具應(yīng)用(續(xù))實(shí)用文檔7.3圖形用戶(hù)界面設(shè)計(jì)工具應(yīng)用(續(xù))例7.2設(shè)計(jì)一個(gè)GUI,實(shí)現(xiàn)計(jì)算器的功能步驟一:界面功能分析該計(jì)算器能完成數(shù)字的四則運(yùn)算及部分常用的科學(xué)計(jì)算,如sin,cos,log等。步驟二:繪界面草圖可有多種風(fēng)格的界面。實(shí)用文檔7.3圖形用戶(hù)界面設(shè)計(jì)工具應(yīng)用(續(xù))草圖一:數(shù)值顯示區(qū)(參加計(jì)算的數(shù)值及計(jì)算結(jié)果)數(shù)字按鈕(0~9十個(gè)數(shù)字及小數(shù)點(diǎn))代表+,-,*,/及sin,cos,log,log10運(yùn)算的按鈕開(kāi)始計(jì)算及清零按鈕實(shí)用文檔7.3圖形用戶(hù)界面設(shè)計(jì)工具應(yīng)用(續(xù))草圖二:計(jì)算式第一個(gè)數(shù)字的編輯顯示計(jì)算式兩個(gè)數(shù)字間的計(jì)算關(guān)系計(jì)算式第二個(gè)數(shù)字的編輯顯示計(jì)算結(jié)果顯示區(qū)代表+,-,*,/及and,or,xor,y^x等運(yùn)算的按鈕開(kāi)始計(jì)算及清零按鈕實(shí)用文檔7.3圖形用戶(hù)界面設(shè)計(jì)工具應(yīng)用(續(xù))草圖三:表達(dá)式編輯顯示區(qū)(格式和MATLAB命令相同)計(jì)算結(jié)果顯示區(qū)開(kāi)始計(jì)算及清零按鈕實(shí)用文檔7.3圖形用戶(hù)界面設(shè)計(jì)工具應(yīng)用(續(xù))步驟三:設(shè)計(jì)界面(選擇草圖一)初步布局打開(kāi)GUI工作臺(tái),通過(guò)用鼠標(biāo)拖拉“工作區(qū)”右下角的“小黑塊”使工作區(qū)的大小合適,然后根據(jù)草圖從控件選擇區(qū)選擇相應(yīng)的控件拖拉到工作區(qū)的相應(yīng)位置。效果圖如下頁(yè)所示:實(shí)用文檔7.3圖形用戶(hù)界面設(shè)計(jì)工具應(yīng)用(續(xù))實(shí)用文檔7.3圖形用戶(hù)界面設(shè)計(jì)工具應(yīng)用(續(xù))2.修改控件屬性1)雙擊設(shè)計(jì)工作區(qū)的空白部分,打開(kāi)圖形窗的屬性框,設(shè)置屬性如下:MenuBarnone%圖形窗不使用標(biāo)準(zhǔn)菜單
NameExperiment1%圖形窗名稱(chēng)Resizeoff%圖形窗不能縮放TagmainWnd
%生成handles.mainWnd域存放圖形窗句柄實(shí)用文檔7.3圖形用戶(hù)界面設(shè)計(jì)工具應(yīng)用(續(xù))2)靜態(tài)文本編輯框的屬性設(shè)置。以”expression”文本框?yàn)槔?/p>
FontSize15%字體大小
Fontunitspoint%字體大小的度量單位
HorizontalAlignmentCenter%對(duì)齊方式
StringExpression%待顯示的字符
Tagtext1
%生成handles.text1存放該靜態(tài)文本框的句柄
Unitspoint%文本框度量單位實(shí)用文檔7.3圖形用戶(hù)界面設(shè)計(jì)工具應(yīng)用(續(xù))3)可編輯文本框的屬性設(shè)置
Sting0%初始狀態(tài)下顯示數(shù)字0
TagpExp%可編輯文本框的句柄其它與靜態(tài)文本框相同實(shí)用文檔7.3圖形用戶(hù)界面設(shè)計(jì)工具應(yīng)用(續(xù))注:Units或FontUnits可選擇:inches(英寸),centimeters(厘米),normalized(按比例縮放),points(點(diǎn)陣),pixels(像素),characters(字符)。如果選擇normalized,那么當(dāng)resize設(shè)為on時(shí),控件或字體大小隨著整個(gè)窗口的縮放而改變。水平對(duì)齊方式HorizontalAlignment可以是left,center,right??丶浔鶷ag有默認(rèn)值,建議修改為帶有具體含義的字符串,以增加程序可讀性和方便回調(diào)函數(shù)調(diào)用。實(shí)用文檔7.3圖形用戶(hù)界面設(shè)計(jì)工具應(yīng)用(續(xù))4)單功能按鈕屬性設(shè)置。以按鈕“1”為例:
String1Tagp1其它和靜態(tài)文本框相同。實(shí)用文檔7.3圖形用戶(hù)界面設(shè)計(jì)工具應(yīng)用(續(xù))3.
創(chuàng)建菜單創(chuàng)建一個(gè)“操作”菜單,帶兩個(gè)下拉選單“計(jì)算”和“清零”。實(shí)用文檔7.3圖形用戶(hù)界面設(shè)計(jì)工具應(yīng)用(續(xù))步驟四:激活界面,填寫(xiě)回調(diào)函數(shù)保存靜態(tài)界面后,利用工具欄上的運(yùn)行界面按鈕激活界面,同時(shí),機(jī)器自動(dòng)生成了exp1.fig和exp1.m兩個(gè)文件。打開(kāi)exp1.m文件,可看到自動(dòng)生成的回調(diào)函數(shù),該函數(shù)的命名利用對(duì)象句柄進(jìn)行區(qū)分,沒(méi)有任何執(zhí)行語(yǔ)句。實(shí)用文檔7.3圖形用戶(hù)界面設(shè)計(jì)工具應(yīng)用(續(xù))回調(diào)函數(shù):Tag_Callback(hObject,eventdata,handles)通過(guò)加入自己的處理語(yǔ)句,才可實(shí)現(xiàn)所需的功能。其中,hObject是該控件的句柄;evendata是備用參數(shù),目前沒(méi)有定義;handles是用戶(hù)數(shù)據(jù),本身是一個(gè)構(gòu)架數(shù)組,存放了當(dāng)前窗口所有對(duì)象的句柄,包括圖形窗本身、所有控件和菜單的句柄,并且可以增加一些域用來(lái)傳遞用戶(hù)數(shù)據(jù)。利用guidata(H,handles)可以更新H的用戶(hù)數(shù)據(jù)。對(duì)本例來(lái)說(shuō),先需要定義幾個(gè)用戶(hù)變量,以便記錄參加運(yùn)算的數(shù)值,進(jìn)行計(jì)算。實(shí)用文檔7.3圖形用戶(hù)界面設(shè)計(jì)工具應(yīng)用(續(xù))function
exp1_OpeningFcn(hObject,eventdata,handles,varargin) handles.output=hObject;
handles.s_Exp=‘’;
%以字符串的形式記錄計(jì)算表達(dá)式
handles.s_Num=‘’;
%以字符串的形式記錄編輯框中要顯示的數(shù)值
handles.i=1; %s_Exp的計(jì)數(shù)器 handles.j=1; %s_Num的計(jì)數(shù)器 handles.flag=0;
%用來(lái)區(qū)分四則運(yùn)算和函數(shù)運(yùn)算的標(biāo)志 %Updatehandlesstructure
guidata(hObject,handles);實(shí)用文檔7.3圖形用戶(hù)界面設(shè)計(jì)工具應(yīng)用(續(xù))數(shù)字按鈕的回調(diào)函數(shù),以數(shù)字1按鈕的回調(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)實(shí)用文檔7.3圖形用戶(hù)界面設(shè)計(jì)工具應(yīng)用(續(xù))
四則運(yùn)算的回調(diào)函數(shù),以“+”為例
function
pAdd_Callback(hObject,eventdata,handles)
if
handles.flaghandles.s_Exp(handles.i)=')';handles.flag=0;handles.i=handles.i+1;
handles.j=handles.j+1;
endhandles.s_Exp(handles.i)='+';handles.s_Num(handles.j)='+';handles.i=handles.i+1;handles.j=handles.j+1;guidata(handles.mainWnd,handles);set(handles.pExp,'string',handles.s_Num)實(shí)用文檔7.3圖形用戶(hù)界面設(shè)計(jì)工具應(yīng)用(續(xù))其它運(yùn)算的回調(diào)函數(shù),以“sin”為例functionpSin_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);se
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 受眾定向技術(shù)行業(yè)經(jīng)營(yíng)分析報(bào)告
- 芯片讀卡器產(chǎn)品供應(yīng)鏈分析
- 電壓力鍋高壓鍋市場(chǎng)發(fā)展前景分析及供需格局研究預(yù)測(cè)報(bào)告
- 手機(jī)游戲開(kāi)發(fā)行業(yè)經(jīng)營(yíng)分析報(bào)告
- 皮制錢(qián)包項(xiàng)目運(yùn)營(yíng)指導(dǎo)方案
- 室內(nèi)裝潢的消毒行業(yè)市場(chǎng)調(diào)研分析報(bào)告
- 玻璃鋼軸流風(fēng)機(jī)項(xiàng)目營(yíng)銷(xiāo)計(jì)劃書(shū)
- 坐便器產(chǎn)業(yè)鏈招商引資的調(diào)研報(bào)告
- 斷布機(jī)產(chǎn)品供應(yīng)鏈分析
- 已登記信息的更新和維護(hù)行業(yè)相關(guān)項(xiàng)目經(jīng)營(yíng)管理報(bào)告
- 日產(chǎn)50t玻璃液馬蹄焰池窯結(jié)構(gòu)設(shè)計(jì)
- 自然辯證法概論-北京化工大學(xué)中國(guó)大學(xué)mooc課后章節(jié)答案期末考試題庫(kù)2023年
- 群文閱讀:童話(huà)中的不可思議 (教學(xué)實(shí)錄)
- 腦出血合并深靜脈血栓的護(hù)理
- 2023醫(yī)院反恐防暴應(yīng)急演練腳本
- 2023年高考語(yǔ)文 真題新課標(biāo)I卷現(xiàn)代文閱讀II《給兒子》小說(shuō)精讀范讀
- 蘇教版五年級(jí)上冊(cè)科學(xué)第2單元第4課《物體的傳熱本領(lǐng)》教學(xué)課件
- 初中音樂(lè)人音九年級(jí)上冊(cè)經(jīng)典交響第五命運(yùn)交響曲
- 4.4.1 對(duì)數(shù)函數(shù)的概念 課時(shí)教學(xué)設(shè)計(jì)
- 2023學(xué)年完整公開(kāi)課版《花巴掌》
- 2023年生活飲用水衛(wèi)生知識(shí)競(jìng)賽題
評(píng)論
0/150
提交評(píng)論