第六章句柄圖形和用戶圖形界面設計_第1頁
第六章句柄圖形和用戶圖形界面設計_第2頁
第六章句柄圖形和用戶圖形界面設計_第3頁
第六章句柄圖形和用戶圖形界面設計_第4頁
第六章句柄圖形和用戶圖形界面設計_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、2022-3-7.1第六章句柄圖形和用戶圖形界面設計教學目標介紹MATLAB的句柄圖形和GUI開發(fā)環(huán)境、開發(fā)實例學習要求理解用戶圖形界面程序的構造,掌握編程方法2022-3-7.26.1可視化界面環(huán)境可視化界面環(huán)境圖形用戶界面是包含圖形對象,如:窗口、圖標、菜單、按鈕和文本的用戶界面。以某種方式選擇或激活這些對象,通常引起動作或發(fā)生變化。最常見的激活方法是用鼠標或其它點設備去控制屏幕上的鼠標指針的運動。按下鼠標按鈕,標志著對象的選擇或其它動作。2022-3-7.3進入:進入:新建文件新建文件命令窗口鍵入命令窗口鍵入GUIDE5個工具個工具界面編輯面板界面編輯面板對象對齊工具對象對齊工具對象屬性

2、編輯器對象屬性編輯器對象瀏覽器對象瀏覽器菜單編輯器菜單編輯器2022-3-7.42022-3- 設計工作區(qū)(The Layout Editor)2022-3- 屬性設計器(Properties Inspector )2022-3-7.7屬性設計器一、控件風格和外觀(1)BackgroundColor:設置控件背景顏色,使用R G B或顏色定義。(2)CData:在控件上顯示的真彩色圖像,使用矩陣表示。(3)ForegroundColor:文本顏色。(4)String屬性:控件上的文本,以及列表框和彈出菜單的選項。(5)Visible:控件是否可見。2022-3-

3、7.8屬性設計器二、對象的常規(guī)信息(1)Enable屬性: 表示此控件的使能狀態(tài),設置為on”,表示可選,為“off”時則表示不可選。(2)Style:控件對象類型。(3)Tag:控件表示(用戶定義)。(4)TooltipString屬性:提示信息顯示。當鼠標指針位于此控件上時,顯示提示信息。(5)UserData:用戶指定數(shù)據(jù)。(6)Position:控件對象的尺寸和位置。(7)Units:設置控件的位置及大小的單位(8)有關字體的屬性,如 FontAngle, FontName等。2022-3-7.9屬性設計器三、控件回調(diào)函數(shù)的執(zhí)行(1)BusyAction:處理回調(diào)函數(shù)的中斷。有兩種選項

4、:即Cancel:取消中斷事件,queue:排隊(默認設置)。(2)ButtonDownFcn屬性:按鈕按下時的處理函數(shù)。(3)CallBack屬性:是連接程序界面整個程序系統(tǒng)的實質(zhì)性功能的紐帶。該屬性值應該為一個可以直接求值的字符串,在該對象被選中和改變時,系統(tǒng)將自動地對字符串進行求值。(4)CreateFcn:在對象產(chǎn)生過程中執(zhí)行的回調(diào)函數(shù)。(5)DeleteFcn:刪除對象過程中執(zhí)行的回調(diào)函數(shù)。(6)Interruptible屬性:指定當前的回調(diào)函數(shù)在執(zhí)行時是否允許中斷,去執(zhí)行其他的函數(shù)。2022-3-7.10屬性設計器四、控件當前狀態(tài)信息(1)ListboxTop:在列表框中顯示的最頂

5、層的字符串的索引。(2)Max:最大值。(3)Min:最小值。(4)Value:控件的當前值。2022-3- 對象瀏覽器(Object Browser)2022-3- 菜單編輯器(Menu Editor)菜單編輯器提供了兩種菜單類型的編輯功能:菜單編輯器提供了兩種菜單類型的編輯功能:下拉式菜單(Menu Bar) 彈出式菜單(Context Menu)2022-3- M文件編輯器 通過選擇M-,可以打開相應.fig文件的.m文件源程序。6.1.6 其它工具 align objects Grids and Rulers The Tab Ord

6、er Editor2022-3-7.14公用對話框文件文件選擇對話框 uigetfile顏色選擇對話框 uisetcolor字體選擇對話框 uisetfont頁面設置對話框 pagedlg警告與錯誤信息對話框 warndlg errordlg簡單幫助信息對話框 helpdlg2022-3-7.156.2 MATLAB圖形界面基本控件圖形界面基本控件界面設計與控件是密不可分的,界面設計與控件是密不可分的,MATLAB提供了一些基本控件,如靜態(tài)提供了一些基本控件,如靜態(tài)文本,編輯控件,列表框等。是獨立的文本,編輯控件,列表框等。是獨立的小部件,也是一個窗口,承擔與用戶的小部件,也是一個窗口,承擔與

7、用戶的交互工作。交互工作。下面介紹常用的基本控件下面介紹常用的基本控件2022-3-7.161靜態(tài)文本(靜態(tài)文本(Static Text) 2編輯框(編輯框(Edit Text)控件)控件3列表框(列表框(Listbox)控件)控件 4滾動條(滾動條(Slider)控件)控件5按鈕(按鈕(Push Button)控件)控件 6切換按鈕(切換按鈕(Toggle Button)控件)控件7單選按鈕(單選按鈕(Radio Button)控件)控件8方框(方框(Frame)控件)控件9檢檢取框(取框(Check Box)控件)控件10彈出式菜單(彈出式菜單(Popup Menu)控件)控件11坐標軸(

8、坐標軸(Axes)控件)控件2022-3-7.171靜態(tài)文本(靜態(tài)文本(Static Text)用于顯示字符串,不接受輸入信息,一般顯示標題用于顯示字符串,不接受輸入信息,一般顯示標題2編輯框(編輯框(Edit Text)控件)控件最常用的控件,可用于單行和多行文本的輸入,功最常用的控件,可用于單行和多行文本的輸入,功能強大。能強大。3列表框(列表框(Listbox)控件)控件顯示一個文字列表,用戶可以選擇其中一項和多項。顯示一個文字列表,用戶可以選擇其中一項和多項。以一行的形式顯示。以一行的形式顯示。4滾動條(滾動條(Slider)控件)控件 2022-3-7.185按鈕(按鈕(Push B

9、utton)控件)控件最常用的控件,用于響應用戶的鼠標按鍵操作。最常用的控件,用于響應用戶的鼠標按鍵操作。6. 切換按鈕(切換按鈕(Toggle Button)控件)控件切換按鈕有兩個狀態(tài),壓下和彈起。切換按鈕有兩個狀態(tài),壓下和彈起。7. 單選按鈕(單選按鈕(Radio Button)控件)控件多個選項,使用時只選擇一個。多個選項,使用時只選擇一個。8. 檢檢取框(取框(Check Box)控件)控件多個選項,使用時一次可多選。多個選項,使用時一次可多選。9. 彈出式菜單(彈出式菜單(Popup Menu)控件)控件2022-3-7.196.3 句柄圖形MATLAB提供了一組用于創(chuàng)建及操作提供

10、了一組用于創(chuàng)建及操作線、面、文字和像等基本圖形對象的低線、面、文字和像等基本圖形對象的低級函數(shù),這組命令可以對各圖形對象進級函數(shù),這組命令可以對各圖形對象進行更為細致的修飾和控制,低級函數(shù)不行更為細致的修飾和控制,低級函數(shù)不僅可以產(chǎn)生更為復雜的圖形,而且為動僅可以產(chǎn)生更為復雜的圖形,而且為動態(tài)圖形提供了基礎。這個系統(tǒng)稱為句柄態(tài)圖形提供了基礎。這個系統(tǒng)稱為句柄圖形系統(tǒng)。圖形系統(tǒng)。2022-3-7.20高層繪圖函數(shù)是對整個圖形進行操作的,圖形每一部分的屬性都是按缺省方式設置的。充分體現(xiàn)了MATLAB語言的實用性。在高層繪圖中對圖形對象的描述一般是缺省的或由高層繪圖函數(shù)自動設置的,因此對用戶來說幾乎

11、是不透明的。底層繪圖函數(shù)可以定制圖形,對圖形的每一部分進行控制,用戶可以用來開發(fā)用戶界面以及各專業(yè)的專用圖形。充分體現(xiàn)了MATLAB語言的開發(fā)性2022-3-句柄圖形的層次關系句柄圖形的層次關系根對象根對象Root screen圖形窗口對象圖形窗口對象figures坐標軸坐標軸Axes界面控件界面控件菜單菜單右鍵菜單右鍵菜單文字文字線對象線對象表面圖表面圖圖像圖像光源光源三維塊三維塊矩形塊矩形塊右鍵菜單右鍵菜單2022-3-7.22句柄圖形:利用底層繪圖函數(shù),通過對對象屬性的設置(Handle Graphics)與操作實現(xiàn)繪圖。句柄圖形中所有圖形操作都是針對圖形對象而言的。句

12、柄圖形充分體現(xiàn)了面向?qū)ο蟮某绦蛟O計。2022-3-7.23句柄圖形的特點v句柄圖形可以隨意改變MATLAB生成圖形的方式。v句柄圖形允許你定制圖形的許多特性,無論是對圖形做一點小改動,還是影響所有圖形輸出的整體改動。v句柄圖形的特性高層繪圖函數(shù)是無法實現(xiàn)的2022-3-7.24創(chuàng)建圖形對象的底層函數(shù)figure創(chuàng)建圖形窗口調(diào)用格式: h=figure(n) n為窗口序號uicontrol圖形界面控制調(diào)用格式: h=uicontrol(property,value)property/value確定控制類型2022-3-7.25uimenu創(chuàng)建用戶界面菜單調(diào)用格式: h=uimenu(proper

13、ty,value)property/value 確定菜單形式。axes 創(chuàng)建軸對象 h=axes(property, ) 定義軸對象的位置與大小 left, bottom width,height2022-3-7.26line 創(chuàng)建線對象 h=line(x,y,z)patch 創(chuàng)建塊對象 h=patch(x,y,z,c) x,y,z定義多邊形,c確定填充顏色。surface 創(chuàng)建面對象 h=surface(x,y,z,c) x,y,z三維曲面坐標,c顏色矩陣。 二維畫線 三維畫線2022-3-7.27image 顯示圖象 h=image(x); x為圖像矩陣text 標注文字 h=text(x

14、,y,string) 每個底層函數(shù)只能創(chuàng)建一個圖形對象,并將它們置于適當?shù)母篙厡ο笾小5浔L圖中上述圖形對象都是用戶需要經(jīng)常使用的,所以要作到心中有數(shù),用句柄設置圖形對象的屬性。確定標注位置標注字符串2022-3-7.286.3.2 圖形窗口對象的屬性所有圖形窗口都有決定其如何表現(xiàn)的屬性,一類是共性:包括類型、可視、剪輯及中斷允許等。另一類是特性:針對某一對象獨有的如定義“面”的數(shù)據(jù),“軸”的刻度等。屬性可以在界面編輯面板的ToolsProperty Inspector菜單項設置。圖形窗口對象本身是一個窗口,具有一般窗口對象的共同屬性。其常用屬性如下:Color、MenuBar、Name、N

15、umberTitle、Unites、Position、Resize。2022-3-7.291.Color屬性圖形背景顏色。RGB: 0 0 0黑色,1 1 1白色2.MenuBar屬性是否在圖形窗口的頂部顯示圖形菜單欄。None缺省設置3.Name屬性窗口標題4.NumberTitle屬性在圖形窗口中是否加上圖形編號。5.Units屬性像素Pixels、英寸inches、厘米Centimeters6.Position屬性設置圖形顯示的大小的位置。2022-3-7.307.Resize屬性能否改變窗口的大小。8.各種回調(diào)函數(shù)Callback:在對象被選中時執(zhí)行的回調(diào)函數(shù);ButtonDownFc

16、n:按下界面上按鈕所執(zhí)行的函數(shù);KeyPressFcn:在鍵盤按下時執(zhí)行的函數(shù);WindowButtonDownFcn:在圖形是窗口中移動鼠標時調(diào)用的函數(shù)。2022-3-7.316.3.3句柄與句柄獲取什么是句柄? 句柄(handle)是圖形對象的標識代碼,標識代碼含有圖形對象的各種必要的屬性信息。各圖形對象的句柄數(shù)據(jù)格式: 根屏幕 0 圖形窗口 整數(shù),表示圖形窗口數(shù) 其它對象 對應的符點數(shù)2022-3-7.32所有能創(chuàng)建圖形對象的MATLAB函數(shù)都可給出所創(chuàng)建圖形對象的句柄例:創(chuàng)建1號窗口,返回句柄 h=figure(1) h=1 返回值為窗口號數(shù)例:h=line(1:6,1:6)創(chuàng)建線對象

17、的同時也建立了一個唯一的句柄 變量h是句柄值浮點數(shù)2022-3-7.33圖形對象屬性的獲得與設置要設置圖形對象屬性值,首先要知道該對象的句柄,基本方法有以下幾種。從圖形創(chuàng)建指令獲取追溯法獲取句柄當前對象句柄的獲取根據(jù)對象特性獲取句柄根據(jù)對象”渾名“(tag)獲取2022-3-7.341.從圖形創(chuàng)建 句柄所有高層或底層指令都能從圖形創(chuàng)建時獲取句柄。H_gc=graphic Ccommand2. 追溯法獲取句柄若一個對象的句柄為H_know,那么可用如下格式獲取其父或其子對象句柄H_pa=get(H_know,parent) H_ch=get(H_know,children)3.當前對象句柄的獲取

18、Gcf:當前窗口對象的句柄 Gca:當前軸對象的句柄Geo:獲取“被鼠標最近點擊”的圖形對象句柄2022-3-7.354.根據(jù)對象特性獲取句柄利用對象特性搜索對象句柄可以得到較高的搜索速度H=findobj(H_ori,”PN”,”PV”)在H_ori制定對象上,尋找與屬性對(”PN”,”PV”)匹配的對象句柄5.根據(jù)“渾名”(tag)獲取可以通過“tag”屬性,給對象一個“渾名”,然后可以通過“渾名”獲取該對象的句柄設置“渾名”的兩個方法創(chuàng)建時賦名:plot (x,y,“Tag”,A4)用set完成:h=plot(x,y) set(h,“Tag”,A4)2022-3-7.36操作格式:h=g

19、cf 將當前窗口對象的句柄返回hget(h)或get(gcf) 查閱當前窗口對象的屬性delete(gcf) 刪除當前窗口的屬性例:h=line(x,y)get(h)2022-3-7.37例:創(chuàng)建一個線對象并返回線對象的句柄值 h1=line(0:10,0:10)h1 = 57.0001h1為句柄的代碼值0123456789100123456789102022-3-7.38查閱線對象的屬性名稱和屬性值get(h1)Color = 1 1 0EraseMode = normalLineStyle = -LineWidth = 0.5MarkerSize = 6Xdata = (1 by 11)

20、Ydata = (1 by 11) Zdata = 2022-3-7.39 ButtonDownFcn = Children = Clipping = onInterruptible = noParent = 56.0001Type = lineUserData = Visible = on根據(jù)軸是線對象的父代,可查軸的句柄 get(gca)2022-3-7.40可查色序get(gca,colororder)ans = 1 1 0 1 0 1 0 1 1 1 0 0 0 1 0 0 0 12022-3-7.41set: 改變圖形對象的屬性設置線條和窗口的顏色set(h1,color,1 0 0

21、)set(h1,color,1 0.5 0)024681001234567891002468100123456789102022-3-7.42set(gcf,color,0.5 0.5 0.5)set(gcf,color,0.5 0.6 0.8)0123456789100123456789100123456789100123456789102022-3-7.43例:作正弦、余弦曲線,將正弦曲線改為虛線,將余弦曲線幅度減為1/2高度,如何用句柄實現(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:)

22、01234567-1-0.8-0.6-0.4-0.60.812022-3-7.44首先查詢各對象的屬性get(gcf) h=get(gcf,children)h = 60.0004hh=get(gca,children)hh = 70.0004 69.0004 68.00042022-3-7.4501234567-1-0.8-0.6-0.4-0.60.81y11=get(hh(2),ydata);y22=y11/2;set(hh(2),ydata,y22)set(hh(3),linestyle,:)2022-3-7.466.4 對象的屬性操作 控制一個圖形對象是通過句柄實現(xiàn)的,具體是通過句柄操作函數(shù)get,set將某對象句柄屬性作設置與修改。對象屬性的直接操作 對象屬性的直接操作是通過當前句柄來實現(xiàn)的,所以首先要獲得當前句柄值以及對象的屬性,然后再查詢或修改。2022-3-7

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論