清華大學(xué)-Matlab-GUI設(shè)計(jì)上課講義_第1頁(yè)
清華大學(xué)-Matlab-GUI設(shè)計(jì)上課講義_第2頁(yè)
清華大學(xué)-Matlab-GUI設(shè)計(jì)上課講義_第3頁(yè)
清華大學(xué)-Matlab-GUI設(shè)計(jì)上課講義_第4頁(yè)
清華大學(xué)-Matlab-GUI設(shè)計(jì)上課講義_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

清華大學(xué)-Matlab-GUI設(shè)計(jì)1.GUI編程概述Matlab是一套高性能的數(shù)值計(jì)算和可視化軟件,兼有高效科學(xué)計(jì)算和友好圖形界面兩方面優(yōu)勢(shì)。其圖形用戶界面(GraphicalUserInterfaces,GUI)是由窗口、光標(biāo)、按鍵、菜單、文字說明等對(duì)象(Objects)構(gòu)成的一個(gè)用戶界面。1.GUI編程概述MatlabGUI具有以下三個(gè)基本元素。組件(Component)圖形化控件(按鈕、編輯框、列表、滾動(dòng)條等),由uicontrol創(chuàng)建;靜態(tài)元素(窗口和文本字符串);菜單,由uimenu和uicontextmenu創(chuàng)建;坐標(biāo)系,由axes創(chuàng)建;圖形窗口(Figure)回應(yīng)(Callback)1.GUI編程概述MatlabGUI具有以下三個(gè)基本元素。組件圖形窗口GUI的每一個(gè)組件都必須放在圖形窗口中。Figure函數(shù)可以用來創(chuàng)建空?qǐng)D像窗口?;貞?yīng)或稱回調(diào)函數(shù),指當(dāng)用戶單擊或者鍵盤輸入一些信息后,程序在后臺(tái)給予的響應(yīng),如執(zhí)行相應(yīng)的函數(shù)。1.GUI編程概述MatlabGUI的開發(fā)步驟。GUI組件布局GUI組件編程保存并發(fā)布GUIMatlabGUI的實(shí)現(xiàn)方法。GUIDE開發(fā)工具優(yōu)點(diǎn):方便,易上手,適合新手缺點(diǎn):代碼框架較復(fù)雜,須多個(gè)文件儲(chǔ)存M文件純代碼優(yōu)點(diǎn):代碼純凈、清晰,只需M文件儲(chǔ)存,手段專業(yè)缺點(diǎn):代碼量大且繁瑣,不適合新手2.GUIDE開發(fā)工具M(jìn)atlab的GUIDE是一個(gè)組件布局工具集。該工具在布局GUI同時(shí)會(huì)生成兩個(gè)文件:FIG文件。該文件包括GUI的圖像窗口和所有子對(duì)象的完全描述及屬性值。M文件。該文件包括用戶用來發(fā)布和控制界面的各種函數(shù)和回調(diào)函數(shù)(作為子函數(shù))。該文件不包含任何組件的布置信息。2.GUIDE開發(fā)工具利用GUIDE創(chuàng)建GUI在Matlab命令窗中輸入“guide”得到以下對(duì)話框當(dāng)要打開已存在的文件“mygui.fig”,則輸入“guidemygui.fig”即可選擇默認(rèn)的空白界面來生成GUI2.GUIDE開發(fā)工具利用GUIDE創(chuàng)建GUI得到的空白GUI開發(fā)界面如下GUI窗口界面組件布局編輯器組件排列工具菜單編輯器屬性編輯器運(yùn)行效果查看M文件2.GUIDE開發(fā)工具在布置組件前,對(duì)GUI進(jìn)行組態(tài)?!癟ools–GUIOptions”,得到以下對(duì)話框。用戶可以對(duì)所開發(fā)的GUI進(jìn)行基本屬性設(shè)定。2.GUIDE開發(fā)工具設(shè)計(jì)組件布局Matlab共有14種基本控件(可能不同版本會(huì)稍有不同)。按鈕(PushButton)是最常用的,用來響應(yīng)鼠標(biāo)單擊事件;滑動(dòng)條(Slider)主要用來為程序提供數(shù)值,該數(shù)值被限制在[min,max]之間,用戶通過滑動(dòng)滑塊來制定;單選按鈕(RadioButton)經(jīng)常多個(gè)聯(lián)合使用(借助按鈕組),用于實(shí)現(xiàn)同一屬性在不同取值間切換,用戶只能選一個(gè);復(fù)選框(CheckBox)和單選按鈕類似,但提供用戶多選;2.GUIDE開發(fā)工具設(shè)計(jì)組件布局Matlab基本控件·2。文本框(EditText)支持用戶通過鍵盤輸入;文本標(biāo)簽(StaticText)用以顯示固定字符串;下拉菜單(Pop-UpMenu)類似于一組單選框;下拉列表(ListBox)類似于一組復(fù)選框;雙位按鈕(ToggleButton)類似于按鈕,但它保持“按下”或“抬起”兩個(gè)狀態(tài),并根據(jù)輸入在兩者間切換;坐標(biāo)軸(Axes)用來顯示圖形;表格(Table)用來顯示表格;2.GUIDE開發(fā)工具設(shè)計(jì)組件布局Matlab基本控件·3。面板(Panel)和按鈕組(ButtonGroup)用以把相關(guān)聯(lián)的組件放在一起,使界面具有層次性和易用性;ActiveX控件主要用于Matlab和其他應(yīng)用程序的交互。2.GUIDE開發(fā)工具設(shè)計(jì)組件布局GUIDE組件常用屬性·1控件風(fēng)格和外觀BackgroundColor:設(shè)置控件背景顏色,使用[RGB]或顏色定義CData:在控件上顯示的真彩色圖像,使用矩陣表示ForegroundColor:文本顏色String屬性:控件上的文本,以及列表框和彈出菜單的選項(xiàng)Visible:控件是否可見2.GUIDE開發(fā)工具設(shè)計(jì)組件布局GUIDE組件常用屬性·2對(duì)象的常規(guī)信息Enable屬性:表示此控件的使能狀態(tài),設(shè)置為on”,表示可選,為“off”時(shí)則表示不可選Style:控件對(duì)象類型Tag:控件表示(用戶定義)TooltipString屬性:提示信息顯示。當(dāng)鼠標(biāo)指針位于此控件上時(shí),顯示提示信息UserData:用戶指定數(shù)據(jù)Position:控件對(duì)象的尺寸和位置Units:設(shè)置控件的位置及大小的單位有關(guān)字體的屬性,如FontAngle,F(xiàn)ontName等2.GUIDE開發(fā)工具設(shè)計(jì)組件布局GUIDE組件常用屬性·3控件回調(diào)函數(shù)的執(zhí)行BusyAction:處理回調(diào)函數(shù)的中斷。有兩種選項(xiàng):即Cancel:取消中斷事件,queue:排隊(duì)(默認(rèn)設(shè)置)ButtonDownFcn屬性:按鈕按下時(shí)的處理函數(shù)CallBack屬性:是連接程序界面整個(gè)程序系統(tǒng)的實(shí)質(zhì)性功能的紐帶。該屬性值應(yīng)該為一個(gè)可以直接求值的字符串,在該對(duì)象被選中和改變時(shí),系統(tǒng)將自動(dòng)地對(duì)字符串進(jìn)行求值CreateFcn:在對(duì)象產(chǎn)生過程中執(zhí)行的回調(diào)函數(shù)DeleteFcn:刪除對(duì)象過程中執(zhí)行的回調(diào)函數(shù)Interruptible屬性:指定當(dāng)前的回調(diào)函數(shù)在執(zhí)行時(shí)是否允許中斷,去執(zhí)行其他的函數(shù)2.GUIDE開發(fā)工具設(shè)計(jì)組件布局GUIDE組件常用屬性·4控件當(dāng)前狀態(tài)信息ListboxTop:在列表框中顯示的最頂層的字符串的索引Max:最大值Min:最小值Value:控件的當(dāng)前值不同組件對(duì)于以上基本屬性可能各有一些特殊的對(duì)應(yīng),用戶應(yīng)根據(jù)實(shí)際需要配置相應(yīng)的屬性。2.GUIDE開發(fā)工具課堂演示:GUIDE組件布局2.GUIDE開發(fā)工具M(jìn)文件編寫當(dāng)用戶第一次儲(chǔ)存當(dāng)前的GUI時(shí),GUIDE會(huì)自動(dòng)為用戶生成相應(yīng)的FIG文件和M文件。用戶在M文件中需要完成以下工作:程序初始化設(shè)置實(shí)現(xiàn)控件回調(diào)函數(shù)最關(guān)鍵以及最難的兩點(diǎn):程序流程控制數(shù)據(jù)結(jié)構(gòu)維護(hù)2.GUIDE開發(fā)工具M(jìn)文件編寫GUI程序的初始化實(shí)際上就是數(shù)據(jù)的初始化。一般可以在函數(shù)“X_OpeningFcn”中進(jìn)行。該函數(shù)在打開GUI的時(shí)候調(diào)用?;卣{(diào)函數(shù)則是在用戶增加控件的同時(shí)自動(dòng)地在M文件中生成。用戶可以通過控件右鍵菜單中的“callback”選項(xiàng)找到相應(yīng)的回調(diào)函數(shù),并將其實(shí)現(xiàn)。2.GUIDE開發(fā)工具全局變量的運(yùn)用對(duì)于GUI程序,全局變量必不可少。一般有兩種全局變量的儲(chǔ)存方法。句柄儲(chǔ)存。該方法利用全局的句柄結(jié)構(gòu)(handles),在其中添加變量,所有回調(diào)函數(shù)都接受這個(gè)句柄結(jié)構(gòu)參數(shù)。如函數(shù):

functionPlay_Callback(hObject,eventdata,handles)Global變量。該方法是Matlab程序中通用的。2.GUIDE開發(fā)工具全局變量的運(yùn)用句柄儲(chǔ)存全局變量。定義或者修改一個(gè)全局變量(如“variable”)時(shí),可直接使用如下代碼:handles.variable=0;每個(gè)函數(shù)中一旦更改了handles中的任何一個(gè)值,最后均需要用以下代碼來進(jìn)行保存,使數(shù)據(jù)更改真正起作用:guidata(hObject,handles);訪問handles中的全局變量,則可以直接訪問。2.GUIDE開發(fā)工具全局變量的運(yùn)用Global儲(chǔ)存全局變量。僅一條規(guī)則:在任何地方使用,在使用之前,先用global進(jìn)行“聲明”。如,定義全局變量:

globalg_var g_var=100;在別的函數(shù)里要將g_var值賦給局部變量l_var則:

globalg_var l_var=g_var;2.GUIDE開發(fā)工具后臺(tái)與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)驗(yàn)GUI設(shè)計(jì)原則簡(jiǎn)單性界面設(shè)計(jì)力求簡(jiǎn)潔、清晰、直觀、易用;一致性界面風(fēng)格統(tǒng)一一致,養(yǎng)成好習(xí)慣;習(xí)常性盡量使用人們熟悉的標(biāo)志和符號(hào);其他因素注意界面的動(dòng)態(tài)性能。如響應(yīng)要迅速、連續(xù),長(zhǎng)時(shí)間計(jì)算最好給出進(jìn)度條并允許中斷。此外,還需要有抵抗“野蠻操作”的魯棒性。3.GUIDE開發(fā)經(jīng)驗(yàn)GUI設(shè)計(jì)步驟分析界面所要求實(shí)現(xiàn)的主要功能,明確任務(wù)設(shè)計(jì)草圖,考慮設(shè)計(jì)原則,并予以實(shí)現(xiàn)編寫對(duì)象的相應(yīng)程序,檢查功能完成情況設(shè)計(jì)時(shí)可以參考很多優(yōu)秀的專業(yè)軟件。對(duì)于多媒體應(yīng)用來說,很多視頻、音頻、圖像處理軟件都可以學(xué)習(xí)!當(dāng)然,作為一個(gè)專業(yè)的程序員,在設(shè)計(jì)時(shí)還必須要加入自己的風(fēng)格,并保持自己的風(fēng)格!3.GUIDE開發(fā)經(jīng)驗(yàn)GUI設(shè)計(jì)實(shí)例多媒體大作業(yè)“音頻處理軟件”

(王易之&MQ)個(gè)性化的設(shè)計(jì)風(fēng)格,色彩濃艷夸張??丶旁诒砻?,使用方便,但顯得比較低級(jí)。軟件使用的魯棒性還是比較好的。3.GUIDE開發(fā)經(jīng)驗(yàn)GUI設(shè)計(jì)實(shí)例系統(tǒng)工程大作業(yè)(王易之&WDM&JC)設(shè)計(jì)風(fēng)格簡(jiǎn)樸清晰,靈感取自Matlab界面。實(shí)現(xiàn)功能均放在菜單中。但Command窗口也可以用命令調(diào)用。這樣的設(shè)置顯得比前一個(gè)專業(yè)一些。如圖為主成分分析結(jié)果。4.純代碼生成GUI利用純代碼生成GUI是MatlabGUI最本源的設(shè)計(jì)方法,類似于在C或C++中用WindowsAPI來設(shè)計(jì)界面。它具有以下特點(diǎn)。代碼的純粹性:所有代碼都由用戶編寫,便于管理和分離(多文件)。整個(gè)軟件就是一堆M文件。絕對(duì)可控性。開發(fā)者掌握了所有的權(quán)利,可以在開發(fā)中更自由地發(fā)揮,對(duì)于專業(yè)程序員,這點(diǎn)很有吸引力。對(duì)于有一定基礎(chǔ)或者習(xí)慣這種編程方式的同學(xué),可以使用這種開發(fā)方式。4.純代碼生成GUI程序?qū)嵗治?。“從MySQL數(shù)據(jù)庫(kù)生成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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論