版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
清華大學(xué)-Matlab-GUI設(shè)計1.GUI編程概述Matlab是一套高性能的數(shù)值計算和可視化軟件,兼有高效科學(xué)計算和友好圖形界面兩方面優(yōu)勢。其圖形用戶界面(GraphicalUserInterfaces,GUI)是由窗口、光標(biāo)、按鍵、菜單、文字說明等對象(Objects)構(gòu)成的一個用戶界面。1.GUI編程概述MatlabGUI具有以下三個基本元素。組件(Component)圖形化控件(按鈕、編輯框、列表、滾動條等),由uicontrol創(chuàng)建;靜態(tài)元素(窗口和文本字符串);菜單,由uimenu和uicontextmenu創(chuàng)建;坐標(biāo)系,由axes創(chuàng)建;圖形窗口(Figure)回應(yīng)(Callback)1.GUI編程概述MatlabGUI具有以下三個基本元素。組件圖形窗口GUI的每一個組件都必須放在圖形窗口中。Figure函數(shù)可以用來創(chuàng)建空圖像窗口。回應(yīng)或稱回調(diào)函數(shù),指當(dāng)用戶單擊或者鍵盤輸入一些信息后,程序在后臺給予的響應(yīng),如執(zhí)行相應(yīng)的函數(shù)。1.GUI編程概述MatlabGUI的開發(fā)步驟。GUI組件布局GUI組件編程保存并發(fā)布GUIMatlabGUI的實現(xiàn)方法。GUIDE開發(fā)工具優(yōu)點(diǎn):方便,易上手,適合新手缺點(diǎn):代碼框架較復(fù)雜,須多個文件儲存M文件純代碼優(yōu)點(diǎn):代碼純凈、清晰,只需M文件儲存,手段專業(yè)缺點(diǎn):代碼量大且繁瑣,不適合新手2.GUIDE開發(fā)工具M(jìn)atlab的GUIDE是一個組件布局工具集。該工具在布局GUI同時會生成兩個文件:FIG文件。該文件包括GUI的圖像窗口和所有子對象的完全描述及屬性值。M文件。該文件包括用戶用來發(fā)布和控制界面的各種函數(shù)和回調(diào)函數(shù)(作為子函數(shù))。該文件不包含任何組件的布置信息。2.GUIDE開發(fā)工具利用GUIDE創(chuàng)建GUI在Matlab命令窗中輸入“guide”得到以下對話框當(dāng)要打開已存在的文件“mygui.fig”,則輸入“guidemygui.fig”即可選擇默認(rèn)的空白界面來生成GUI2.GUIDE開發(fā)工具利用GUIDE創(chuàng)建GUI得到的空白GUI開發(fā)界面如下GUI窗口界面組件布局編輯器組件排列工具菜單編輯器屬性編輯器運(yùn)行效果查看M文件2.GUIDE開發(fā)工具在布置組件前,對GUI進(jìn)行組態(tài)?!癟ools–GUIOptions”,得到以下對話框。用戶可以對所開發(fā)的GUI進(jìn)行基本屬性設(shè)定。2.GUIDE開發(fā)工具設(shè)計組件布局Matlab共有14種基本控件(可能不同版本會稍有不同)。按鈕(PushButton)是最常用的,用來響應(yīng)鼠標(biāo)單擊事件;滑動條(Slider)主要用來為程序提供數(shù)值,該數(shù)值被限制在[min,max]之間,用戶通過滑動滑塊來制定;單選按鈕(RadioButton)經(jīng)常多個聯(lián)合使用(借助按鈕組),用于實現(xiàn)同一屬性在不同取值間切換,用戶只能選一個;復(fù)選框(CheckBox)和單選按鈕類似,但提供用戶多選;2.GUIDE開發(fā)工具設(shè)計組件布局Matlab基本控件·2。文本框(EditText)支持用戶通過鍵盤輸入;文本標(biāo)簽(StaticText)用以顯示固定字符串;下拉菜單(Pop-UpMenu)類似于一組單選框;下拉列表(ListBox)類似于一組復(fù)選框;雙位按鈕(ToggleButton)類似于按鈕,但它保持“按下”或“抬起”兩個狀態(tài),并根據(jù)輸入在兩者間切換;坐標(biāo)軸(Axes)用來顯示圖形;表格(Table)用來顯示表格;2.GUIDE開發(fā)工具設(shè)計組件布局Matlab基本控件·3。面板(Panel)和按鈕組(ButtonGroup)用以把相關(guān)聯(lián)的組件放在一起,使界面具有層次性和易用性;ActiveX控件主要用于Matlab和其他應(yīng)用程序的交互。2.GUIDE開發(fā)工具設(shè)計組件布局GUIDE組件常用屬性·1控件風(fēng)格和外觀BackgroundColor:設(shè)置控件背景顏色,使用[RGB]或顏色定義CData:在控件上顯示的真彩色圖像,使用矩陣表示ForegroundColor:文本顏色String屬性:控件上的文本,以及列表框和彈出菜單的選項Visible:控件是否可見2.GUIDE開發(fā)工具設(shè)計組件布局GUIDE組件常用屬性·2對象的常規(guī)信息Enable屬性:表示此控件的使能狀態(tài),設(shè)置為on”,表示可選,為“off”時則表示不可選Style:控件對象類型Tag:控件表示(用戶定義)TooltipString屬性:提示信息顯示。當(dāng)鼠標(biāo)指針位于此控件上時,顯示提示信息UserData:用戶指定數(shù)據(jù)Position:控件對象的尺寸和位置Units:設(shè)置控件的位置及大小的單位有關(guān)字體的屬性,如FontAngle,F(xiàn)ontName等2.GUIDE開發(fā)工具設(shè)計組件布局GUIDE組件常用屬性·3控件回調(diào)函數(shù)的執(zhí)行BusyAction:處理回調(diào)函數(shù)的中斷。有兩種選項:即Cancel:取消中斷事件,queue:排隊(默認(rèn)設(shè)置)ButtonDownFcn屬性:按鈕按下時的處理函數(shù)CallBack屬性:是連接程序界面整個程序系統(tǒng)的實質(zhì)性功能的紐帶。該屬性值應(yīng)該為一個可以直接求值的字符串,在該對象被選中和改變時,系統(tǒng)將自動地對字符串進(jìn)行求值CreateFcn:在對象產(chǎn)生過程中執(zhí)行的回調(diào)函數(shù)DeleteFcn:刪除對象過程中執(zhí)行的回調(diào)函數(shù)Interruptible屬性:指定當(dāng)前的回調(diào)函數(shù)在執(zhí)行時是否允許中斷,去執(zhí)行其他的函數(shù)2.GUIDE開發(fā)工具設(shè)計組件布局GUIDE組件常用屬性·4控件當(dāng)前狀態(tài)信息ListboxTop:在列表框中顯示的最頂層的字符串的索引Max:最大值Min:最小值Value:控件的當(dāng)前值不同組件對于以上基本屬性可能各有一些特殊的對應(yīng),用戶應(yīng)根據(jù)實際需要配置相應(yīng)的屬性。2.GUIDE開發(fā)工具課堂演示:GUIDE組件布局2.GUIDE開發(fā)工具M(jìn)文件編寫當(dāng)用戶第一次儲存當(dāng)前的GUI時,GUIDE會自動為用戶生成相應(yīng)的FIG文件和M文件。用戶在M文件中需要完成以下工作:程序初始化設(shè)置實現(xiàn)控件回調(diào)函數(shù)最關(guān)鍵以及最難的兩點(diǎn):程序流程控制數(shù)據(jù)結(jié)構(gòu)維護(hù)2.GUIDE開發(fā)工具M(jìn)文件編寫GUI程序的初始化實際上就是數(shù)據(jù)的初始化。一般可以在函數(shù)“X_OpeningFcn”中進(jìn)行。該函數(shù)在打開GUI的時候調(diào)用?;卣{(diào)函數(shù)則是在用戶增加控件的同時自動地在M文件中生成。用戶可以通過控件右鍵菜單中的“callback”選項找到相應(yīng)的回調(diào)函數(shù),并將其實現(xiàn)。2.GUIDE開發(fā)工具全局變量的運(yùn)用對于GUI程序,全局變量必不可少。一般有兩種全局變量的儲存方法。句柄儲存。該方法利用全局的句柄結(jié)構(gòu)(handles),在其中添加變量,所有回調(diào)函數(shù)都接受這個句柄結(jié)構(gòu)參數(shù)。如函數(shù):
functionPlay_Callback(hObject,eventdata,handles)Global變量。該方法是Matlab程序中通用的。2.GUIDE開發(fā)工具全局變量的運(yùn)用句柄儲存全局變量。定義或者修改一個全局變量(如“variable”)時,可直接使用如下代碼:handles.variable=0;每個函數(shù)中一旦更改了handles中的任何一個值,最后均需要用以下代碼來進(jìn)行保存,使數(shù)據(jù)更改真正起作用:guidata(hObject,handles);訪問handles中的全局變量,則可以直接訪問。2.GUIDE開發(fā)工具全局變量的運(yùn)用Global儲存全局變量。僅一條規(guī)則:在任何地方使用,在使用之前,先用global進(jìn)行“聲明”。如,定義全局變量:
globalg_var g_var=100;在別的函數(shù)里要將g_var值賦給局部變量l_var則:
globalg_var l_var=g_var;2.GUIDE開發(fā)工具后臺與GUI的交流
Get函數(shù)。通過句柄獲取控件當(dāng)前的值。a=get(H,‘DefaultObjectTypePropertyName’);Set函數(shù)。通過句柄設(shè)置控件的值。set(H,‘PropertyName’,PropertyValue,...);Axes函數(shù)。通過句柄來獲取當(dāng)前繪圖區(qū)。axes(H);plot(…);3.GUIDE開發(fā)經(jīng)驗GUI設(shè)計原則簡單性界面設(shè)計力求簡潔、清晰、直觀、易用;一致性界面風(fēng)格統(tǒng)一一致,養(yǎng)成好習(xí)慣;習(xí)常性盡量使用人們熟悉的標(biāo)志和符號;其他因素注意界面的動態(tài)性能。如響應(yīng)要迅速、連續(xù),長時間計算最好給出進(jìn)度條并允許中斷。此外,還需要有抵抗“野蠻操作”的魯棒性。3.GUIDE開發(fā)經(jīng)驗GUI設(shè)計步驟分析界面所要求實現(xiàn)的主要功能,明確任務(wù)設(shè)計草圖,考慮設(shè)計原則,并予以實現(xiàn)編寫對象的相應(yīng)程序,檢查功能完成情況設(shè)計時可以參考很多優(yōu)秀的專業(yè)軟件。對于多媒體應(yīng)用來說,很多視頻、音頻、圖像處理軟件都可以學(xué)習(xí)!當(dāng)然,作為一個專業(yè)的程序員,在設(shè)計時還必須要加入自己的風(fēng)格,并保持自己的風(fēng)格!3.GUIDE開發(fā)經(jīng)驗GUI設(shè)計實例多媒體大作業(yè)“音頻處理軟件”
(王易之&MQ)個性化的設(shè)計風(fēng)格,色彩濃艷夸張??丶旁诒砻?,使用方便,但顯得比較低級。軟件使用的魯棒性還是比較好的。3.GUIDE開發(fā)經(jīng)驗GUI設(shè)計實例系統(tǒng)工程大作業(yè)(王易之&WDM&JC)設(shè)計風(fēng)格簡樸清晰,靈感取自Matlab界面。實現(xiàn)功能均放在菜單中。但Command窗口也可以用命令調(diào)用。這樣的設(shè)置顯得比前一個專業(yè)一些。如圖為主成分分析結(jié)果。4.純代碼生成GUI利用純代碼生成GUI是MatlabGUI最本源的設(shè)計方法,類似于在C或C++中用WindowsAPI來設(shè)計界面。它具有以下特點(diǎn)。代碼的純粹性:所有代碼都由用戶編寫,便于管理和分離(多文件)。整個軟件就是一堆M文件。絕對可控性。開發(fā)者掌握了所有的權(quán)利,可以在開發(fā)中更自由地發(fā)揮,對于專業(yè)程序員,這點(diǎn)很有吸引力。對于有一定基礎(chǔ)或者習(xí)慣這種編程方式的同學(xué),可以使用這種開發(fā)方式。4.純代碼生成GUI程序?qū)嵗治??!皬腗ySQL數(shù)據(jù)庫生成NS2仿真數(shù)據(jù)”(王易之)4.純代碼生成GUI程序?qū)嵗治?。生成窗?/p>
添加菜單H_fig=figure(1);set(H_fig,'unit','normalized','Position',[0.1,0.1,0.8,0.8],'MenuBar','none','name','Build_NS2_Files','Color',[0.8,0.8,0.8]);h_menu_file=uimenu(H_fig,'label','File');h_menu_edit=uimenu(H_fig,'label','Edit');h_menu_help=uimenu(H_fig,'label','Help');
h_submenu_file_exit=uimenu(h_menu_file,'label','exit','callback','close()');4.純代碼生成GUI程序?qū)嵗治?。調(diào)整單位
添加控件set(H_fig,'defaultuicontrolunits','normalized');h_panel_build=uipanel('position',[0.35,0.02,0.6,0.2],'backgroundColor',[0.8,0.8,0.8]);h_push_mixtables=uicontrol(H_fig,'style','push','position',[0.4,0.05,0.225,0.12],'string','Mixtables...','fontsize',20,'BackgroundColor','g',...'callback','mixtables(h_list_addlinks,h_text_system);');h_edit_username=uicontrol(H_fig,'style','edit','position',[0.05,0.84,0.25,0.05],'string',Mysql_username,'BackgroundColor',[0.9,0.9,0.9],'fontsize',15,...'callback','Mysql_username=get(
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度貸款購置別墅及附屬設(shè)施合同3篇
- 2024年精簡版咨詢服務(wù)合同版B版
- 2024智能語音識別技術(shù)研發(fā)與許可合同
- 2024年股權(quán)接收協(xié)議書
- 2024欠款分期付款協(xié)議書
- 2024年版海產(chǎn)養(yǎng)殖場合作經(jīng)營合同3篇
- 2024年汽車帶牌轉(zhuǎn)讓與二手車鑒定評估及保養(yǎng)維修服務(wù)合同3篇
- 2024年設(shè)計咨詢服務(wù)正式協(xié)議版B版
- 2024年銷售崗位勞動合作合同版B版
- 2024年高端裝備制造人才引進(jìn)與培養(yǎng)協(xié)議
- 2025山東濰坊光明電力服務(wù)限公司招聘142人管理單位筆試遴選500模擬題附帶答案詳解
- 《診斷教學(xué)胸腔積液》課件
- DB32T 3292-2017 大跨徑橋梁鋼橋面環(huán)氧瀝青混凝土鋪裝養(yǎng)護(hù)技術(shù)規(guī)程
- 2023-2024學(xué)年新疆吐魯番市高二上學(xué)期期末生物試題(解析版)
- 《MATLAB編程及應(yīng)用》全套教學(xué)課件
- 人教版八年級上冊數(shù)學(xué)期末考試試卷及答案
- 配電箱巡檢表
- 網(wǎng)頁設(shè)計與制作案例實戰(zhàn)教程課件 第13章 綜合實戰(zhàn)案例
- 2024人力行政年終總結(jié)
- 2024國家開放大學(xué)【法理學(xué)】形考試題及答案(二)
- 國際項目管理手冊The Project Manager’s Manual
評論
0/150
提交評論