版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、2021/7/2412021/7/242 本章將介紹: 圖形用戶界面的設(shè)計(jì)原則; 圖形用戶界面的操作步驟。2021/7/2438.1 GUI設(shè)計(jì)向?qū)?.2 編程設(shè)計(jì)GUI 2021/7/244 8.1.1 GUI概述 8.1.2 啟動(dòng)GUIDE 8.1.3 GUIDE提供的控件2021/7/245 本節(jié)介紹: 圖形用戶界面(GUI)的基本概念; GUI開發(fā)環(huán)境GUIDE; GUI組成部分的用途和使用方法; GUI創(chuàng)建的詳細(xì)步驟。2021/7/246 GUI是一種包含多種對(duì)象的圖形窗口,并為GUI開發(fā)提供一個(gè)方便高效的集成開發(fā)環(huán)境GUIDE。GUIDE主要是一個(gè)界面設(shè)計(jì)工具集,MATLAB將所有
2、GUI支持的控件都集成在這個(gè)環(huán)境中。2021/7/247 GUIDE將設(shè)計(jì)好的GUI保存在一個(gè)FIG文件中,同時(shí)生成M文件框架。 FIG文件:該文件包括GUI圖形窗口及其所有FIG文件包含序列化的圖形窗口對(duì)象; M文件:該文件包括GUI設(shè)計(jì)、控制函數(shù)以及定義為子函數(shù)的用戶控件回調(diào)函數(shù)。2021/7/248 GUIDE可以根據(jù)GUI設(shè)計(jì)過程直接自動(dòng)生成M文件框架,優(yōu)點(diǎn)如下: M文件已經(jīng)包含一些必要的代碼; 管理圖形對(duì)象句柄并執(zhí)行回調(diào)函數(shù)子程序; 提供管理全局?jǐn)?shù)據(jù)的途徑; 支持自動(dòng)插入回調(diào)函數(shù)原型。2021/7/249 GUI創(chuàng)建包括界面設(shè)計(jì)和控件編程兩部分,主要步驟如下: 通過設(shè)置GUIDE應(yīng)用
3、程序的選項(xiàng)來運(yùn)行GUIDE; 使用界面設(shè)計(jì)編輯器進(jìn)行界面設(shè)計(jì); 編寫控件行為響應(yīng)控制(即回調(diào)函數(shù))代碼。2021/7/2410 在MATLAB中,GUIDE提供多個(gè)模板來定制GUI。這些模板均已包括相關(guān)的回調(diào)函數(shù),可以通過修改對(duì)應(yīng)的M文件函數(shù),實(shí)現(xiàn)指定功能。 2021/7/2411 在MATLAB中,可以通過如下兩種方法來訪問模板: 直接輸入命令GUIDE,打開如下圖所示的界面; 如果GUIDE已經(jīng)打開,通過【File】菜單下的【New】選項(xiàng)也可以打開如下圖所示的界面。2021/7/24122021/7/2413 在模板設(shè)計(jì)界面中,可以選擇創(chuàng)建新的GUI或者打開原有的GUI。 在創(chuàng)建新的GUI
4、時(shí)MATLAB提供以下4種模板:空白模板;帶有控制按鈕模板;帶有坐標(biāo)軸和菜單模板;問答式對(duì)話框模板。2021/7/2414其中的空白模板如下圖所示。2021/7/2415 在空白模板中,GUIDE提供界面控件以及設(shè)計(jì)工具集來實(shí)現(xiàn)界面設(shè)計(jì),其中,控件分布在界面設(shè)計(jì)編輯器的左側(cè),如下圖所示。2021/7/24162021/7/2417 按鈕:通過鼠標(biāo)單擊按鈕可以實(shí)現(xiàn)某種行為,并調(diào)用相應(yīng)的回調(diào)函數(shù)。 滾動(dòng)條:能夠通過移動(dòng)滾動(dòng)條來改變指定范圍內(nèi)的數(shù)值輸入,滾動(dòng)條的位置代表輸入數(shù)值。 單選按鈕:單選按鈕通常以組為單位,一組單選按鈕之間是一種互相排斥的關(guān)系。2021/7/2418 復(fù)選框:復(fù)選框與單選按鈕
5、類似,只是多個(gè)復(fù)選框可以同時(shí)有效。 編輯框:編輯框可編輯或修改字符串的文本域。 靜態(tài)文本:靜態(tài)文本通常作為其他控件的標(biāo)簽使用。2021/7/2419 彈出式菜單:彈出式菜單將打開并顯示選項(xiàng)列表。 列表框:列表框顯示列表項(xiàng),并能夠選擇其中的一項(xiàng)或多項(xiàng)。 拴牢按鈕:拴牢能夠產(chǎn)生一個(gè)二進(jìn)制狀態(tài)的行動(dòng)。2021/7/2420 組合框:組合框是圖形窗口中的一個(gè)封閉區(qū)域,它把相關(guān)聯(lián)的控件組合在一起。 按鈕組:按鈕組類似于組合框,但是它可以響應(yīng)單選按鈕以及拴牢按鈕的高級(jí)屬性。 坐標(biāo)軸:坐標(biāo)軸可以設(shè)置關(guān)于外觀和行為的參數(shù)。2021/7/2421 1界面設(shè)計(jì)編輯器 2屬性檢查器 3對(duì)象瀏覽器 4菜單編輯器202
6、1/7/2422 GUIDE提供的界面設(shè)計(jì)工具集包括如下內(nèi)容: 界面設(shè)計(jì)編輯器:添加并排列圖形窗口中的控件對(duì)象。 屬性檢查器:檢查并設(shè)置控件的屬性值。2021/7/2423 對(duì)象瀏覽器:觀察此次MATLAB運(yùn)行過程中圖形對(duì)象的句柄集成關(guān)系表。 菜單編輯器:創(chuàng)建窗口菜單和上下文菜單。2021/7/2424 界面設(shè)計(jì)編輯器能夠從控件面板中選擇控件,并將它們排列在圖形窗口中。 界面設(shè)計(jì)編輯器由以下4個(gè)部分組成: 控件面板; 工具欄;2021/7/2425 菜單欄; 界面區(qū)域。其中: 控件面板包含所有控件; 工具欄和菜單欄可以用來啟動(dòng)其他界面設(shè)計(jì)工具; 界面區(qū)域?qū)嶋H上就是激活后的GUI圖形窗口。202
7、1/7/2426(1)控件面板 在GUI界面中放置控件: 單擊控件面板中需要放置控件的按鈕; 在光標(biāo)變?yōu)槭中魏?,使用十字形光?biāo)的中心點(diǎn)來確定控件左上角的位置; 可以通過拖動(dòng)鼠標(biāo)來確定控件的大小。 2021/7/2427 所有控件布置好后,可以使用激活按鈕 或 選 擇 【 T o o l s 】 菜 單 下 的【ActivateFigure】選項(xiàng)檢查GUIDE的設(shè)計(jì)結(jié)果,激活時(shí)將(提示)保存FIG文件和M文件。2021/7/2428(2)上下文菜單 使用界面設(shè)計(jì)編輯器進(jìn)行界面設(shè)計(jì)時(shí): 選擇一個(gè)對(duì)象; 單擊鼠標(biāo)右鍵來顯示其對(duì)應(yīng)的上下文菜單。2021/7/2429 下圖描述了一個(gè)與按鈕相聯(lián)系的上下
8、文菜單,同時(shí)所有已定義的回調(diào)函數(shù)都可列出。2021/7/2430(3)排列工具 可以在界面區(qū)域內(nèi)通過選擇并拖動(dòng)任意控件(群)對(duì)其進(jìn)行控件排列,當(dāng)選擇【Tools】菜單下的【Align Objects】選項(xiàng)時(shí)即可打開下圖所示的排列工具欄。2021/7/24312021/7/2432(4)網(wǎng)線和標(biāo)線 界面區(qū)域內(nèi)可以使用網(wǎng)格和標(biāo)線輔助設(shè)計(jì),當(dāng)選擇【Tools】菜單下的【Grid and Rulers】選項(xiàng)時(shí)即可打開下圖所示的網(wǎng)格和標(biāo)線對(duì)話框。2021/7/24332021/7/2434 屬性檢查器提供所選擇對(duì)象的可設(shè)置屬性列表及當(dāng)前屬性值,并可以進(jìn)行手動(dòng)設(shè) 置 , 當(dāng) 選 擇 【 V i e w 】
9、 菜 單 下 的【Property Inspector】選項(xiàng)時(shí)即可打開類似下圖所示的屬性檢查器。2021/7/24352021/7/2436 對(duì)象瀏覽器可以顯示圖形窗口中所有對(duì)象的繼承關(guān)系。2021/7/2437 GUIDE能夠創(chuàng)建菜單欄和上下文菜單。 當(dāng)選擇【Tools】菜單下的【Menu Editor】選項(xiàng)時(shí)即可打開下圖所示的菜單編輯器。2021/7/2438 2021/7/2439(1)菜單欄菜單 使用【New Menu】工具欄創(chuàng)建一個(gè)菜單; 指定其隸屬關(guān)系; 指定其屬性。 下圖顯示一個(gè)設(shè)計(jì)的菜單,當(dāng)激活圖形窗口時(shí)即可看到結(jié)果。2021/7/24402021/7/2441 (2)上下文菜
10、單 上下文菜單設(shè)計(jì)好后,當(dāng)單擊鼠標(biāo)右鍵時(shí)它隨之出現(xiàn)。 使用【New Context Menu】工具欄創(chuàng)建一個(gè)菜單; 指定其隸屬關(guān)系; 指定其屬性。2021/7/2442 1窗口重畫行為 2命令行訪問 3生成FIG文件和M文件2021/7/2443 在添加控件前,應(yīng)使用GUIDE應(yīng)用程序選項(xiàng)對(duì)話框?qū)UI組態(tài)進(jìn)行設(shè)置。選擇界面設(shè)計(jì)編輯器的【To o l s 】 菜 單 下 的【Application Options】選項(xiàng)打開如下圖所示選項(xiàng)對(duì)話框。2021/7/24442021/7/2445 該對(duì)話框能夠設(shè)置的選項(xiàng)如下: 窗口重畫行為(Resize behavior); 命 令 行 訪 問 ( C
11、 o m m a n d - l i n e accessibility); 生成FIG文件和M文件(Generate FIG-file and M-file); 生成回調(diào)函數(shù)原型(Generate callback function prototypes);2021/7/2446 同一時(shí)刻僅允許運(yùn)行一個(gè)應(yīng)用程序?qū)嵗℅UI allows only one instance to run (singleton) ); 使用系統(tǒng)背景顏色設(shè)置(Using the system background colors); 僅生成FIG文件(Generate FIG-file Only)。2021/7/2
12、447 GUI界面設(shè)計(jì)是通過使用界面設(shè)計(jì)編輯器進(jìn)行的,控件的布置前面已經(jīng)介紹,但在布置后往往需要定義控件的屬性。2021/7/2448 用鼠標(biāo)雙擊該控件,即可看到其對(duì)應(yīng)的屬性檢查器。 當(dāng)?shù)谝淮螌粹o布置在界面后,雙擊該按鈕即可看到如下圖所示的屬性檢查器,其中包含屬性Tag和Callback。2021/7/24492021/7/2450 1M文件及數(shù)據(jù)管理 2回調(diào)函數(shù)的使用方法 3圖形窗口的行為控制2021/7/2451 GUI的編程方法: 系統(tǒng)生成的應(yīng)用程序M文件的含義,以及利用句柄結(jié)構(gòu)體管理GUI數(shù)據(jù)的方法; GUI控件回調(diào)函數(shù)的類型和中斷方法; GUI圖形窗口的行為控制。2021/7/24
13、52 (1)M文件 GUI的一個(gè)重要任務(wù)就是通過控件響應(yīng)指定行為。 GUIDE給添加到應(yīng)用程序M文件中的回調(diào)函數(shù)自動(dòng)命名,并使控件被激活時(shí)該函數(shù)能夠被調(diào)用。2021/7/2453(2)數(shù)據(jù)管理 GUIDE使用應(yīng)用程序M文件來定義和實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)和讀取,文件中包含所有GUI控件對(duì)象句柄的結(jié)構(gòu)體handles。2021/7/2454 (1)回調(diào)函數(shù)類型 圖形對(duì)象的回調(diào)函數(shù) ButtonDownFcn:當(dāng)用戶將鼠標(biāo)放置在某個(gè)對(duì)象時(shí),單擊鼠標(biāo)左鍵,MATLAB將調(diào)用回調(diào)函數(shù)。2021/7/2455 CreatFcn:MATLAB將在創(chuàng)建對(duì)象時(shí),調(diào)用回調(diào)函數(shù)。 DeleteFcn:MATLAB在刪除對(duì)象
14、之前調(diào)用回調(diào)函數(shù)。2021/7/2456 圖形窗口的回調(diào)函數(shù) CloseRequestFcn:當(dāng)請(qǐng)求關(guān)閉圖形窗口時(shí),調(diào)用回調(diào)函數(shù)。 KeyPressFcn:當(dāng)用戶在圖形窗口內(nèi)按下鼠標(biāo)鍵時(shí),調(diào)用回調(diào)函數(shù)。 ResizeFcn:當(dāng)用戶重畫圖形窗口時(shí),調(diào)用回調(diào)函數(shù)。2021/7/2457 WindowButtonDownFcn:當(dāng)用戶在圖形窗口內(nèi)無控件的地方按下鼠標(biāo)鍵時(shí),調(diào)用回調(diào)函數(shù)。 WindowButtonMotionFcn:當(dāng)用戶在圖形窗口中移動(dòng)鼠標(biāo)時(shí),調(diào)用回調(diào)函數(shù)。 WindowButtonUpFcn:當(dāng)用戶在圖形窗口中釋放鼠標(biāo)鍵時(shí),調(diào)用回調(diào)函數(shù)。2021/7/2458 (2)回調(diào)函數(shù)執(zhí)行中
15、斷 默認(rèn)情況下MATLAB允許回調(diào)函數(shù)執(zhí)行中斷,且可以隨時(shí)終止操作,則終止操作對(duì)應(yīng)的回調(diào)函數(shù)將會(huì)中斷裝載數(shù)據(jù)操作對(duì)應(yīng)的回調(diào)函數(shù)。2021/7/2459 可執(zhí)行中斷設(shè)置 圖形對(duì)象都包含屬性Interruptible,該屬性的默認(rèn)值為on,表示回調(diào)函數(shù)可以執(zhí)行中斷。2021/7/2460 同時(shí)圖形對(duì)象都包含屬性BusyAction,它有如下兩種可能的取值: queue:將事件保存在事件序列中并等待不可中斷回調(diào)函數(shù)執(zhí)行完畢后處理。 cancel:放棄該事件并將事件從序列中刪除。2021/7/2461 執(zhí)行中斷的規(guī)則 遇到命令drawnow、figure、getframe、pause或waitfor,
16、MATLAB將該回調(diào)函數(shù)掛起并開始處理事件序列。 事件序列的頂端事件要求重畫圖形窗口,MATLAB將執(zhí)行重畫并繼續(xù)處理事件序列中的下一個(gè)事件。2021/7/2462 事件序列的頂端事件將會(huì)導(dǎo)致一個(gè)回調(diào)函數(shù)的執(zhí)行,MATLAB將判斷回調(diào)函數(shù)被掛起的對(duì)象是否可中斷。 當(dāng)所有事件都被處理后,MATLAB恢復(fù)被中斷函數(shù)的執(zhí)行。2021/7/24633圖形窗口的行為控制 在設(shè)計(jì)GUI時(shí),需要考慮GUI圖形窗口的行為控制,主要包括如下3種情況: 實(shí)現(xiàn)圖形注釋的工具GUI,通常一幅圖形需要一個(gè)新的工具實(shí)例。2021/7/2464 詢問用戶并阻止MATLAB運(yùn)行直至用戶作出回答,此時(shí)圖形窗口僅可以被觀察。 警
17、告用戶其指定的操作將會(huì)破壞文件的對(duì)話框,該對(duì)話框能夠執(zhí)行用戶所需的操作前強(qiáng)迫用戶作出回答。2021/7/2465 下面3種技術(shù)能夠有效地解決上述3種情況。 允許單個(gè)或多個(gè)GUI實(shí)例同時(shí)運(yùn)行。 在顯示GUI時(shí)阻止MATLAB的運(yùn)行。 使用模態(tài)圖形窗口使用戶只能與當(dāng)前執(zhí)行的GUI進(jìn)行交互。2021/7/24662021/7/24672021/7/24682021/7/24692021/7/2470 編寫函數(shù),這些函數(shù)都包含在隨圖形用戶界面設(shè)計(jì)時(shí)產(chǎn)生的M文件中。 1圖形用戶界面打開時(shí)自動(dòng)運(yùn)行的函數(shù) simple_gui_OpeningFcn(),其具體代碼序列如下:2021/7/2471 2021/7/24722021/7/247323個(gè)按鈕的回調(diào)函數(shù)(Callback),其具體代碼序列如下:2021/7/24742021/7/24753下拉菜單的回調(diào)函數(shù)(Callback),其具體代碼序列如下:2021/7/24762021/7/24774菜單項(xiàng)Close的回調(diào)函數(shù)(Callback),其具體代碼序列如下:2021/7/2478 最后激活的圖形用戶界面如下圖所示。2021/7/2479 當(dāng)在下拉菜單中選擇【sinc】且單擊【Mesh】按鈕,可得到如下圖所示的結(jié)果。2021/7/2480 當(dāng)選擇【File】菜單下的【Close】選
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度farmhouse木門安裝服務(wù)合同
- 深圳購房合同樣本
- 住宅房屋購買合同簡單版
- 2024年《軟件許可合同中不可抗力事件的處理》
- 廣告公司授權(quán)合同模板
- 2024年范文承包土地協(xié)議書
- 2024年發(fā)光字合同
- 跨境客運(yùn)線路租賃合同
- 共建文明施工項(xiàng)目協(xié)議書
- 親子園與醫(yī)療機(jī)構(gòu)合作協(xié)議書
- 國開2024年《中國法律史》平時(shí)作業(yè)1-3答案
- 鋼結(jié)構(gòu)策劃書(范本)
- 急性腎衰竭與crrt治
- 焦化廠生產(chǎn)工序及工藝流程圖
- 嘔吐(急性胃腸炎)診療指南(制訂)編制說明排版
- 江堤道路工程施工方案#江蘇
- (外研版)初中英語語法匯總[新版]
- 李燕璇植樹問題卡通版5
- 有砟軌道鋪設(shè)的施工講解
- 煙草專賣食堂燃?xì)庑孤都盎馂?zāi)事故現(xiàn)場應(yīng)急處置方案
- 國家電網(wǎng)公司十八項(xiàng)反措
評(píng)論
0/150
提交評(píng)論