06第六章句柄圖形和用戶(hù)圖形界面設(shè)計(jì)課件_第1頁(yè)
06第六章句柄圖形和用戶(hù)圖形界面設(shè)計(jì)課件_第2頁(yè)
06第六章句柄圖形和用戶(hù)圖形界面設(shè)計(jì)課件_第3頁(yè)
06第六章句柄圖形和用戶(hù)圖形界面設(shè)計(jì)課件_第4頁(yè)
06第六章句柄圖形和用戶(hù)圖形界面設(shè)計(jì)課件_第5頁(yè)
已閱讀5頁(yè),還剩46頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第六章

句柄圖形和用戶(hù)圖形界面設(shè)計(jì)教學(xué)目標(biāo)介紹MATLAB的句柄圖形和GUI開(kāi)發(fā)環(huán)境、開(kāi)發(fā)實(shí)例學(xué)習(xí)要求理解用戶(hù)圖形界面程序的構(gòu)造,掌握編程方法2023/10/616.1可視化界面環(huán)境圖形用戶(hù)界面是包含圖形對(duì)象,如:窗口、圖標(biāo)、菜單、按鈕和文本的用戶(hù)界面。以某種方式選擇或激活這些對(duì)象,通常引起動(dòng)作或發(fā)生變化。最常見(jiàn)的激活方法是用鼠標(biāo)或其它點(diǎn)設(shè)備去控制屏幕上的鼠標(biāo)指針的運(yùn)動(dòng)。按下鼠標(biāo)按鈕,標(biāo)志著對(duì)象的選擇或其它動(dòng)作。2023/10/62進(jìn)入:新建文件命令窗口鍵入GUIDE5個(gè)工具界面編輯面板對(duì)象對(duì)齊工具對(duì)象屬性編輯器對(duì)象瀏覽器菜單編輯器2023/10/632023/10/646.1.1設(shè)計(jì)工作區(qū)(TheLayoutEditor)2023/10/656.1.2屬性設(shè)計(jì)器(PropertiesInspector)2023/10/66屬性設(shè)計(jì)器一、控件風(fēng)格和外觀(1)BackgroundColor:設(shè)置控件背景顏色,使用[RGB]或顏色定義。(2)CData:在控件上顯示的真彩色圖像,使用矩陣表示。(3)ForegroundColor:文本顏色。(4)String屬性:控件上的文本,以及列表框和彈出菜單的選項(xiàng)。(5)Visible:控件是否可見(jiàn)。2023/10/67屬性設(shè)計(jì)器二、對(duì)象的常規(guī)信息(1)Enable屬性:表示此控件的使能狀態(tài),設(shè)置為on”,表示可選,為“off”時(shí)則表示不可選。(2)Style:控件對(duì)象類(lèi)型。(3)Tag:控件表示(用戶(hù)定義)。(4)TooltipString屬性:提示信息顯示。當(dāng)鼠標(biāo)指針位于此控件上時(shí),顯示提示信息。(5)UserData:用戶(hù)指定數(shù)據(jù)。(6)Position:控件對(duì)象的尺寸和位置。(7)Units:設(shè)置控件的位置及大小的單位(8)有關(guān)字體的屬性,如FontAngle,F(xiàn)ontName等。2023/10/68屬性設(shè)計(jì)器三、控件回調(diào)函數(shù)的執(zhí)行(1)BusyAction:處理回調(diào)函數(shù)的中斷。有兩種選項(xiàng):即Cancel:取消中斷事件,queue:排隊(duì)(默認(rèn)設(shè)置)。(2)ButtonDownFcn屬性:按鈕按下時(shí)的處理函數(shù)。(3)CallBack屬性:是連接程序界面整個(gè)程序系統(tǒng)的實(shí)質(zhì)性功能的紐帶。該屬性值應(yīng)該為一個(gè)可以直接求值的字符串,在該對(duì)象被選中和改變時(shí),系統(tǒng)將自動(dòng)地對(duì)字符串進(jìn)行求值。(4)CreateFcn:在對(duì)象產(chǎn)生過(guò)程中執(zhí)行的回調(diào)函數(shù)。(5)DeleteFcn:刪除對(duì)象過(guò)程中執(zhí)行的回調(diào)函數(shù)。(6)Interruptible屬性:指定當(dāng)前的回調(diào)函數(shù)在執(zhí)行時(shí)是否允許中斷,去執(zhí)行其他的函數(shù)。2023/10/69屬性設(shè)計(jì)器四、控件當(dāng)前狀態(tài)信息(1)ListboxTop:在列表框中顯示的最頂層的字符串的索引。(2)Max:最大值。(3)Min:最小值。(4)Value:控件的當(dāng)前值。2023/10/6106.1.3對(duì)象瀏覽器(ObjectBrowser)2023/10/6116.1.4菜單編輯器(MenuEditor)菜單編輯器提供了兩種菜單類(lèi)型的編輯功能:下拉式菜單(MenuBar)彈出式菜單(ContextMenu)2023/10/612 6.1.5M文件編輯器通過(guò)選擇M-FileEditor,可以打開(kāi)相應(yīng).fig文件的.m文件源程序。 6.1.6其它工具

alignobjectsGridsandRulersTheTabOrderEditor2023/10/613公用對(duì)話(huà)框文件文件選擇對(duì)話(huà)框uigetfile顏色選擇對(duì)話(huà)框uisetcolor字體選擇對(duì)話(huà)框uisetfont頁(yè)面設(shè)置對(duì)話(huà)框pagedlg警告與錯(cuò)誤信息對(duì)話(huà)框warndlgerrordlg簡(jiǎn)單幫助信息對(duì)話(huà)框helpdlg2023/10/6146.2MATLAB圖形界面基本控件 界面設(shè)計(jì)與控件是密不可分的,MATLAB提供了一些基本控件,如靜態(tài)文本,編輯控件,列表框等。是獨(dú)立的小部件,也是一個(gè)窗口,承擔(dān)與用戶(hù)的交互工作。 下面介紹常用的基本控件

2023/10/6151.靜態(tài)文本(StaticText)2.編輯框(EditText)控件3.列表框(Listbox)控件4.滾動(dòng)條(Slider)控件5.按鈕(PushButton)控件6.切換按鈕(ToggleButton)控件7.單選按鈕(RadioButton)控件8.方框(Frame)控件9.檢取框(CheckBox)控件 10.彈出式菜單(PopupMenu)控件11.坐標(biāo)軸(Axes)控件2023/10/6161.靜態(tài)文本(StaticText) 用于顯示字符串,不接受輸入信息,一般顯示標(biāo)題2.編輯框(EditText)控件

最常用的控件,可用于單行和多行文本的輸入,功能強(qiáng)大。3.列表框(Listbox)控件

顯示一個(gè)文字列表,用戶(hù)可以選擇其中一項(xiàng)和多項(xiàng)。以一行的形式顯示。4.滾動(dòng)條(Slider)控件

2023/10/6175.按鈕(PushButton)控件 最常用的控件,用于響應(yīng)用戶(hù)的鼠標(biāo)按鍵操作。6.切換按鈕(ToggleButton)控件

切換按鈕有兩個(gè)狀態(tài),壓下和彈起。7.單選按鈕(RadioButton)控件 多個(gè)選項(xiàng),使用時(shí)只選擇一個(gè)。8. 檢取框(CheckBox)控件 多個(gè)選項(xiàng),使用時(shí)一次可多選。9.彈出式菜單(PopupMenu)控件

2023/10/6186.3句柄圖形 MATLAB提供了一組用于創(chuàng)建及操作線(xiàn)、面、文字和像等基本圖形對(duì)象的低級(jí)函數(shù),這組命令可以對(duì)各圖形對(duì)象進(jìn)行更為細(xì)致的修飾和控制,低級(jí)函數(shù)不僅可以產(chǎn)生更為復(fù)雜的圖形,而且為動(dòng)態(tài)圖形提供了基礎(chǔ)。這個(gè)系統(tǒng)稱(chēng)為句柄圖形系統(tǒng)。2023/10/619 高層繪圖函數(shù)——是對(duì)整個(gè)圖形進(jìn)行操作的,圖形每一部分的屬性都是按缺省方式設(shè)置的。充分體現(xiàn)了MATLAB語(yǔ)言的實(shí)用性。

在高層繪圖中對(duì)圖形對(duì)象的描述一般是缺省的或由高層繪圖函數(shù)自動(dòng)設(shè)置的,因此對(duì)用戶(hù)來(lái)說(shuō)幾乎是不透明的。 底層繪圖函數(shù)——可以定制圖形,對(duì)圖形的每一部分進(jìn)行控制,用戶(hù)可以用來(lái)開(kāi)發(fā)用戶(hù)界面以及各專(zhuān)業(yè)的專(zhuān)用圖形。充分體現(xiàn)了MATLAB語(yǔ)言的開(kāi)發(fā)性2023/10/6206.3.1句柄圖形的層次關(guān)系根對(duì)象Rootscreen圖形窗口對(duì)象figures坐標(biāo)軸Axes界面控件菜單右鍵菜單文字線(xiàn)對(duì)象表面圖圖像光源三維塊矩形塊右鍵菜單2023/10/621句柄圖形:利用底層繪圖函數(shù),通過(guò)對(duì)對(duì)象屬性的設(shè)置(HandleGraphics)與操作實(shí)現(xiàn)繪圖。句柄圖形中所有圖形操作都是針對(duì)圖形對(duì)象而言的。句柄圖形充分體現(xiàn)了面向?qū)ο蟮某绦蛟O(shè)計(jì)。2023/10/622句柄圖形的特點(diǎn)句柄圖形可以隨意改變MATLAB生成圖形的方式。句柄圖形允許你定制圖形的許多特性,無(wú)論是對(duì)圖形做一點(diǎn)小改動(dòng),還是影響所有圖形輸出的整體改動(dòng)。句柄圖形的特性高層繪圖函數(shù)是無(wú)法實(shí)現(xiàn)的2023/10/623創(chuàng)建圖形對(duì)象的底層函數(shù)figure

創(chuàng)建圖形窗口調(diào)用格式:h=figure(n)n為窗口序號(hào)uicontrol

圖形界面控制調(diào)用格式:h=uicontrol(‘property’,value)property/value確定控制類(lèi)型2023/10/624uimenu

創(chuàng)建用戶(hù)界面菜單調(diào)用格式:

h=uimenu(‘property’,value)property/value確定菜單形式。axes

創(chuàng)建軸對(duì)象

h=axes(‘property’,)

定義軸對(duì)象的位置與大小

left,bottom

width,height2023/10/625line

創(chuàng)建線(xiàn)對(duì)象

h=line(x,y,z)patch創(chuàng)建塊對(duì)象

h=patch(x,y,z,c)x,y,z定義多邊形,c確定填充顏色。surface創(chuàng)建面對(duì)象

h=surface(x,y,z,c)x,y,z三維曲面坐標(biāo),c顏色矩陣。

二維畫(huà)線(xiàn)

三維畫(huà)線(xiàn)2023/10/626image

顯示圖象

h=image(x);x為圖像矩陣text

標(biāo)注文字

h=text(x,y,’string’)

每個(gè)底層函數(shù)只能創(chuàng)建一個(gè)圖形對(duì)象,并將它們置于適當(dāng)?shù)母篙厡?duì)象中。但句柄繪圖中上述圖形對(duì)象都是用戶(hù)需要經(jīng)常使用的,所以要作到心中有數(shù),用句柄設(shè)置圖形對(duì)象的屬性。確定標(biāo)注位置標(biāo)注字符串2023/10/6276.3.2圖形窗口對(duì)象的屬性 所有圖形窗口都有決定其如何表現(xiàn)的屬性,一類(lèi)是共性:包括類(lèi)型、可視、剪輯及中斷允許等。另一類(lèi)是特性:針對(duì)某一對(duì)象獨(dú)有的如定義“面”的數(shù)據(jù),“軸”的刻度等。屬性可以在界面編輯面板的Tools\PropertyInspector菜單項(xiàng)設(shè)置。 圖形窗口對(duì)象本身是一個(gè)窗口,具有一般窗口對(duì)象的共同屬性。其常用屬性如下:Color、MenuBar、Name、NumberTitle、Unites、Position、Resize。2023/10/6281.Color屬性圖形背景顏色。RGB:[000]黑色,[111]白色2.MenuBar屬性是否在圖形窗口的頂部顯示圖形菜單欄。None缺省設(shè)置3.Name屬性窗口標(biāo)題4.NumberTitle屬性在圖形窗口中是否加上圖形編號(hào)。5.Units屬性像素Pixels、英寸inches、厘米Centimeters6.Position屬性設(shè)置圖形顯示的大小的位置。2023/10/6297.Resize屬性能否改變窗口的大小。8.各種回調(diào)函數(shù)Callback:在對(duì)象被選中時(shí)執(zhí)行的回調(diào)函數(shù);ButtonDownFcn:按下界面上按鈕所執(zhí)行的函數(shù);KeyPressFcn:在鍵盤(pán)按下時(shí)執(zhí)行的函數(shù);WindowButtonDownFcn:在圖形是窗口中移動(dòng)鼠標(biāo)時(shí)調(diào)用的函數(shù)。2023/10/6306.3.3句柄與句柄獲取什么是句柄?句柄(handle)是圖形對(duì)象的標(biāo)識(shí)代碼,標(biāo)識(shí)代碼含有圖形對(duì)象的各種必要的屬性信息。各圖形對(duì)象的句柄數(shù)據(jù)格式:

根屏幕0

圖形窗口整數(shù),表示圖形窗口數(shù)其它對(duì)象對(duì)應(yīng)的符點(diǎn)數(shù)2023/10/631所有能創(chuàng)建圖形對(duì)象的MATLAB函數(shù)都可給出所創(chuàng)建圖形對(duì)象的句柄例:創(chuàng)建1號(hào)窗口,返回句柄

h=figure(1)h=1返回值為窗口號(hào)數(shù)例:h=line(1:6,1:6)創(chuàng)建線(xiàn)對(duì)象的同時(shí)也建立了一個(gè)唯一的句柄變量h是句柄值——浮點(diǎn)數(shù)2023/10/632圖形對(duì)象屬性的獲得與設(shè)置 要設(shè)置圖形對(duì)象屬性值,首先要知道該對(duì)象的句柄,基本方法有以下幾種。

從圖形創(chuàng)建指令獲取 追溯法獲取句柄 當(dāng)前對(duì)象句柄的獲取 根據(jù)對(duì)象特性獲取句柄 根據(jù)對(duì)象”渾名“(tag)獲取2023/10/633 1.從圖形創(chuàng)建句柄 所有高層或底層指令都能從圖形創(chuàng)建時(shí)獲取句柄。 H_gc=graphicCcommand 2.追溯法獲取句柄 若一個(gè)對(duì)象的句柄為H_know,那么可用如下格式獲取其父或其子對(duì)象句柄H_pa=get(H_know,’parent’)H_ch=get(H_know,’children’) 3.當(dāng)前對(duì)象句柄的獲取Gcf:當(dāng)前窗口對(duì)象的句柄Gca:當(dāng)前軸對(duì)象的句柄Geo:獲取“被鼠標(biāo)最近點(diǎn)擊”的圖形對(duì)象句柄2023/10/6344.根據(jù)對(duì)象特性獲取句柄利用對(duì)象特性搜索對(duì)象句柄可以得到較高的搜索速度H=findobj(H_ori,”P(pán)N”,”P(pán)V”)在H_ori制定對(duì)象上,尋找與屬性對(duì)(”P(pán)N”,”P(pán)V”)匹配的對(duì)象句柄5.根據(jù)“渾名”(tag)獲取可以通過(guò)“tag”屬性,給對(duì)象一個(gè)“渾名”,然后可以通過(guò)“渾名”獲取該對(duì)象的句柄設(shè)置“渾名”的兩個(gè)方法創(chuàng)建時(shí)賦名:plot(x,y,“Tag”,‘A4’)用set完成:h=plot(x,y) set(h,“Tag”,‘A4’)2023/10/635操作格式:h=gcf將當(dāng)前窗口對(duì)象的句柄返回hget(h)或get(gcf)查閱當(dāng)前窗口對(duì)象的屬性delete(gcf)刪除當(dāng)前窗口的屬性例:h=line(x,y)get(h)2023/10/636例:創(chuàng)建一個(gè)線(xiàn)對(duì)象并返回線(xiàn)對(duì)象的句柄值

h1=line([0:10],[0:10])h1=57.0001h1為句柄的代碼值2023/10/637查閱線(xiàn)對(duì)象的屬性名稱(chēng)和屬性值get(h1)

Color=[110] EraseMode=normal LineStyle=- LineWidth=[0.5] MarkerSize=[6] Xdata=[(1by11)] Ydata=[(1by11)] Zdata=[] 2023/10/638ButtonDownFcn=

Children=[]

Clipping=on

Interruptible=no

Parent=[56.0001]

Type=line

UserData=[]

Visible=on根據(jù)軸是線(xiàn)對(duì)象的父代,可查軸的句柄

get(gca)2023/10/639可查色序get(gca,'colororder')ans=1101010111000100012023/10/640set:改變圖形對(duì)象的屬性設(shè)置線(xiàn)條和窗口的顏色set(h1,'color',[100])set(h1,'color',[10.50])2023/10/641set(gcf,'color',[0.50.50.5])set(gcf,'color',[0.50.60.8])2023/10/642例:作正弦、余弦曲線(xiàn),將正弦曲線(xiàn)改為虛線(xiàn),將余弦曲線(xiàn)幅度減為1/2高度,如何用句柄實(shí)現(xiàn)。x=0:2*pi/180:2*pi;y1=sin(x);y2=cos(x);plot(x,y1,x,y2,x,zeros(size(x)),'w:')2023/10/643首先查詢(xún)各對(duì)象的屬性get(gcf)···h=get(gcf,'children')h=60.0004hh=get(gca,'children')hh=70.000469.000468.00042023/10/644y11=get(hh(2),'ydata');y22=y11/2;set(hh(2),'ydata',y22)set(hh(3),'linestyle',':')2023/10/6456.4對(duì)象的屬性操作※控制一個(gè)圖形對(duì)象是通過(guò)句柄實(shí)現(xiàn)的,具體是通過(guò)句柄操作函數(shù)get,set將某對(duì)象句柄屬性作設(shè)置與修改。對(duì)象屬性的直接操作

對(duì)象屬性的直接操作是通過(guò)當(dāng)前句柄來(lái)實(shí)現(xiàn)的,所以首先要獲得當(dāng)前句柄值以及對(duì)象的屬性,然后再查詢(xún)或修改。2023/10/646get(h)get(h,’propertyname’)set(h)set(h,’propertyname’,value)set(h,’屬性名稱(chēng)’,‘新屬性’)‘color’,’r’‘linestyle’,’:’‘figurecolor’,’m’2023/10/6472.對(duì)象屬性的繼承操作對(duì)象屬性的繼承操作是通過(guò)父代對(duì)象,設(shè)置缺省對(duì)象屬性來(lái)實(shí)現(xiàn)的。父代句柄屬性中設(shè)置缺省值后,所有子代對(duì)象均可以繼承該屬性的缺省值。屬性缺省值的描述結(jié)構(gòu)為:

Dfault+對(duì)象名

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論