Microsoft PowerPoint - Lec13_GUIDE_

Similar documents
08 握把式圖形與GUI設計

Microsoft Word - GUI design.doc

任務二 : 產生 20 個有炸彈的磚塊, 放在隨機的位置編輯 Block 類別的程式碼 import greenfoot.; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) Write a description of class

投影片 1

輕鬆學 Dreamweaver CS5 網頁設計..\Example\Ch0\ \.html..\example\ch0\ \mouse.txt..\example\ch0\ \ _Ok.html 學習重點 JavaScript 複製程式碼 mouse.txt Ctrl+C Ctrl+C 0-4

TPM BIOS Infineon TPM Smart TPM Infineon TPM Smart TPM TPM Smart TPM TPM Advanced Mode...8

Microsoft PowerPoint - Lecture7II.ppt

Photoshop CS3 影像創造力 基礎講堂 8 學習流程 學習重要性 學習難度 必學指令工具 實作應用範例 創造舞台燈光的漸層繪圖 延伸學習 雜訊與半透明漸層 8-1 Photoshop Photoshop 8 136

ActiveX Control

專題報告交版.doc

Microsoft PowerPoint - 第14章.ppt

Microsoft Word - FPKLSC_21.docx

epub83-1

主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new

AutoCAD 用戶如何使用 ArchiCAD

Microsoft Word - template.doc

2 黑 色 皇 后 兵 向 前 移 動 兩 格 3 白 色 主 教 兵 4 黑 色 皇 后 對 角 移 動 到 對 吃 掉 白 色 國 王 的 位 置 在 這 個 章 節 中 你 會 學 到 1 打 開 設 定 關 鍵 (Set Key) 模 式 2 使 用 在 檢 視 軌 跡 中 的 可 設 定

現在人類獲取地球內部訊息的方法, 是從可能影響我們身家性命安全的地震, 用數學模型把地震資料轉換成地震波速度, 進而獲得地底物質密度與深度的關係 地下世界知多少 km/s g/cm 3 P Gpa km S P S 3,000 3,000 ak K 透視地底 Percy Bridgma

p.2 1 <HTML> 2 3 <HEAD> 4 <TITLE> </TITLE> 5 </HEAD> 6 7 <BODY> 8 <H3><B> </B></H3> 9 <H4><I> </I></H4> 10 </BODY> </HTML> 1. HTML 1. 2.

0 0 = 1 0 = 0 1 = = 1 1 = 0 0 = 1

The golden pins of the PCI card can be oxidized after months or years

PowerPoint 簡報

ex

<4D F736F F D20AC4FBDBDA4FBB67DA96CAABA2DA743A67EAFC5AAA95FA7B9BD5A5F2E646F63>

基于UML建模的管理管理信息系统项目案例导航——VB篇

封面-12

Pro/ENGINEER 訓練教材 ( 曲面 ) 目錄 1. Creo2.0 設定工作目錄 圖形

USING MAYA ANIMATION Keyset set Maya sets partitions MEL MEL copykey cutkey pastekey scalekey snapkey keytangent bakeresults MEL Command Reference Edi

WinMDI 28

Microsoft PowerPoint - VB14.ppt

二次曲線 人們對於曲線的使用及欣賞 比曲線被視為一種數學題材來探討要早 得多 各種曲線中 在日常生活常接觸的 當然比較容易引起人們的興趣 比如 投擲籃球的路徑是拋物線 盤子的形狀有圓形或橢圓形 雙曲線 是較不常見的 然而根據科學家的研究 彗星的運行軌道是雙曲線的一部 分 我們將拋物線 圓與橢圓 雙曲

AL-M200 Series

PowerPoint 簡報

上图专刊2006-3AAA.doc

衡山靈學創始人 超越時代的靈學明師 許衡山 老師 許衡山老師 出生於西元 1942 年 於 1980 年代啟發先天眼竅 自證其道 了悟真理 許 老師首先發現 人人皆可開發出第三眼能力與靈性能量 並藉由系統化的研究 將種種 生命現象與宇宙真理做深入淺出的剖析 並為生命的最終意義指出一條明路 現代文明昌

슬로시티번역,더빙 등 보고서(중문)_두현.hwp

untitled

?



EP.pdf

Chapter 9: Objects and Classes

FETnet - Acer Iconia Tab  (A500 Wi-Fi 版) 平板電腦操作指南

第 一 节 认 识 自 我 的 意 义 一 个 人 只 有 认 识 自 我, 才 能 够 正 确 地 认 识 到 自 己 的 优 劣 势, 找 出 自 己 的 职 业 亮 点, 为 自 己 的 顺 利 求 职 推 波 助 澜 ; 一 个 人 只 有 认 识 自 我, 才 能 在 求 职 中 保 持

Spyder Anaconda Spyder Python Spyder Python Spyder Spyder Spyder 開始 \ 所有程式 \ Anaconda3 (64-bit) \ Spyder Spyder IPython Python IPython Sp

Microsoft Word - 3D手册2.doc


<img>

Microsoft Word - 三峽鎮衛生所_3_-張家宸.李永繁.doc

Microsoft Word - 武漢大學交流營心得_黃莉云_.doc

Windows XP

INTRODUCTION TO COM.DOC

Important Notice SUNPLUS TECHNOLOGY CO. reserves the right to change this documentation without prior notice. Information provided by SUNPLUS TECHNOLO


晶体结构立体模型建构软件-Diamond的使用

<A4E2BEF7B4FAB8D5B3F8A F52322E786C7378>

星星排列 _for loop Protected Sub Page_Load(ByVal sender As Object, ByVal e As Dim h As Integer = 7 'h 為變數 ' Dim i, j As Integer For i = 1 To h

Win-GRAF-User_Manual-chinese

Microsoft Word - SCADA_intouch_EN01 C.doc

<4D F736F F D20657A646C312D D30385FA670A6F3B35DA C A8C3B14EB8EAAEC6B04FBFFDA8ECBBB7BADDB8EAAEC6AE772E646F63>

使用手冊

untitled

chapter 2 HTML5 目錄iii HTML HTML HTML HTML HTML canvas

創 作 動 機 因 未 成 年 懷 孕 的 案 例 從 國 中 時 期 就 在 身 邊 屢 屢 發 生, 這 意 外 中 的 小 生 命 會 讓 一 個 人 或 說 是 一 對 父 母 的 人 生 產 生 劇 烈 衝 擊, 先 不 談 是 否 成 全 生 命 的 誕 生, 往 往 就 在 社 會 倫

Microsoft PowerPoint - 18_Event.pptx

單步除錯 (1/10) 打開 Android Studio, 點選 Start a new Android Studio project 建立專案 Application name 輸入 BMI 點下 Next 2 P a g e

2016 勒索軟體白皮書

CU0594.pdf

epub 94-3

Microsoft PowerPoint - B9-2.pptx

3. 対 象 学 生 について 樹 人 医 護 管 理 専 科 学 校 原 則 高 等 専 門 学 校 4 年 生 と 5 年 生 を 対 象 に 実 施 します 4. 実 施 要 領 (1) 研 修 内 容 : 研 修 内 容 は 基 本 的 に 受 入 企 業 にお 任 せしますが できるだけア

RunPC2_.doc

Preface This guide is intended to standardize the use of the WeChat brand and ensure the brand's integrity and consistency. The guide applies to all d

mvc

台中銀行 安控元件 安裝手冊 Ver 1.0 中華民國 107 年 7 月 16 日

1.ai


! 2000 CSSsprites.com Web FTP app 20% 80% getelementbyid() UI Facebook F8 Web CSSsprites.com Web JavaScript CSS React xi React UI UI 反應 UI 宣告 d

Move Component Object selection Component selection UV Maya Hotkeys editor Maya USING MAYA POLYGONAL MODELING 55

Microsoft Word - 3. Vitroefication_using_EMGP.docx


f2.eps

Learning Java

Microsoft Word - ACI chapter00-1ed.docx

Transcription:

Handle Graphics, GUI, GUIDE 握把式圖形 GUI 設計 GUIDE 彭旭霞助理教授國立清華大學生醫工程與環境科學系 1

Contents 握把式圖形 (Handle Graphics) GUI: M file GUI: GUIDE 2

握把式圖形 (Handle Graphics) 每個構成圖形的基本單位都可視為一個物件 (Object): 曲線 曲面 圖軸 文字 每個物件都有一個獨一無二的握把 (Handle) ( 就像每一個人都有一個獨一無二的身份證字號 ) 根據物件的握把可以存取圖形物件的所有性質 3

圖形物件的階層結構 圖形物件階層結構 (Hierarchy) 4

Ex.: 階層結構 5

圖形物件的性質存取 方法一 : 以 MATLAB 所提供的圖形使用者介面 (GUI,Graphical User Interface) 進行圖形物件的性質存取 方法二 : 以 MATLAB 命令列進行圖形物件的性質存取 6

方法一 : MATLAB 的性質編輯器 先畫完圖, 再使用 propedit 開啟性質編輯器 ex.: >>peaks; >>propedit; % 畫出 peaks 3D 圖 % 開啟性質編輯器 若不在命令列下達 propedit, 也可以點選工具列上面的圖示來開啟圖形編輯功能 : 也可選擇 : Edit/Figure Properties 7

進行圖形編輯 啟動圖形編輯功能後, 直接以滑鼠左鍵點選圖形物件 (ex. 圖軸 ) 點選右鍵選取所需要修改的性質, 就可以達到修改圖形的效果 8

方法二 : 圖形物件的性質存取 以命令列進行圖形物件的性質存取 -set: 設定某個性質的值 - get: 取得某個性質的值 - findobj: 在握把式圖形的階層式結構中找出需要的物件 9

Ex.: set 單獨使用 set(h), 可列出 h 的所有性質, 以及這些性質的可能值和預設值, 例如 : >> h=plot(humps); >> set(h, linestyle ) >> set(h) 10

Ex.: set 11

Ex.: get >> get(h, 'LineWidth') % 取得曲線寬度 ans =3; >> get(h, 'Color') % 取得曲線顏色 ans = 0 0 1 >> get(h) % 列出 h 的所有性質的值 12

Ex.: findobj >> plot(rand(10,2)); % 畫出兩條曲線 >> h=findobj('type', 'line') % 找出曲線的握把 h = 172.0011 171.0022 >> set(h, 'LineWidth',3); % 經由握把將曲線寬度改為 3 ( 看 Figure 中的曲線變化 ) 13

Contents 握把式圖形 (Handle Graphics) GUI: M file GUI: GUIDE 14

MATLAB GUI MATLAB GUI (Graphic User Interface) M 檔案 GUIDE 發展環境 15

GUI: M 檔案 M 檔案的 GUI 設計 uicontrol Mouse Events Example: xpsound travel truss lorenz 等 16

Ex.: uicontrol 17

UI 控制物件 Uicontrol 產生 UI (User Interface) 控制物件 按鈕 (Push Button)<=default 滑動棒 (Sliding Bar) 圓形按鈕 (Radio Button) 框架 (Frame) 核計方塊 (Check Box) 文字欄位 (Edit Box) 列表式選單 (List Menu) 下拉式選單 (Popup Menu) 18

Ex.: uicontrol 19

Ex.: uicontrol 的完整範例 : ui01.m 20

Ex.: uicontrol 的完整範例 : cb2.m; cb3.m 21

Ex.: uicontrol 的完整範例 ( 自行練習 ) 上例潛在問題 - 有三個檔案, 管理不方便 - 使用的變數都在 MATLAB 基本工作空間中, 容易造成變數的相衝及覆蓋 解決 : Switchyard( 調車廠 ) Programming 程式設計概念 - tag 的使用 22

Ex.: uicontrol 的完整範例 : tag 23

Ex.: uicontrol 的完整範例 : tag 24

Ex.: uicontrol 的完整範例 : tag 25

GUI: M 檔案 M 檔案的 GUI 設計 uicontrol Mouse Events Example: xpsound travel truss lorenz 等 26

滑鼠事件 (Mouse Events) 主要滑鼠事件 WindowButtonDownFcn: 滑鼠按鈕按下時反應指令 WindowButtonMotionFcn: 滑鼠移動時的反應指令 WindowButtonUpFcn: 滑鼠按鈕釋放時的反應指令 27

滑鼠事件的使用 若希望滑鼠先被按下然後在移動滑鼠時, 才會觸發移動時的反應指令, 必須做下列事項 : 在滑鼠按鈕被按下時, 設定 WindowButtonMotionFcn 及 WindowButtonUpFcn 的值 在滑鼠按鈕被釋放時, 清除 WindowButtonMotionFcn 及 WindowButtonUpFcn 的值 因此, 只有在滑鼠按鈕被按下, 且滑鼠在移動時, 對應於 WindowButtonMotionFcn 的反應指令才會被呼叫 28

Ex.: 滑鼠事件 : mouse01.m 29

Ex.: 滑鼠事件 30

滑鼠事件的範例 31

Contents 握把式圖形 (Handle Graphics) GUI: M file GUI: GUIDE 32

GUIDE 簡介 GUIDE: Graphic User Interface Design Environment 設計 圖形使用者介面 ( 簡稱 GUI) 的發展環境 GUIDE 的好處 : - 可產生每個控制物件的標準反應函式, 使用者只要填入所需的指令或敘述 - 所見即所得 : 快速地 拉 出介面 GUIDE 的小缺點 : - 比較不適用於複雜的 GUI 介面 - 無法將 GUI 應用程式集中於一個檔案 - 執行效率可能比較差一些 33

GUIDE 簡介 啟動 GUIDE: 命令視窗下輸入 guide 34

GUIDE 簡介 在 Create New GUI 的頁面中, 你可以選擇幾個樣版 : Blank GUI (Default): 空白樣版 GUI with Uicontrols: 含有 UI 控制物件 (UI Controls) 的樣版 GUI with Axes and Menu: 含有圖軸和下拉選單的樣版 Modal Question Dialog: 含有對話窗的樣版 如果你已經有之前所設計的畫面, 也可以點選 Open Existing GUI, 來開啟以前的檔案, 如右圖所示 : 35

GUIDE 簡介 Blank GUI (Default): 開啟空白樣版 跳出兩個視窗 : figure & function ( 檢查路徑, 多了一個同名的.m 檔案 ) 36

GUIDE 簡介 Figure: - 左邊 : 各種 UI 控制物件和圖軸的選單 - 選取選單 : 可在中間空白部分以滑鼠點選並拖放來擺置所需的 UI 控制物件或圖軸 可修改預設的 GUIDE 編輯面版, 讓它更好用 : - 若要放大左邊圖式並顯示圖式文字說明 : - 點選 File/Preference - 並點選 Show names in component palette - 若要在面版周圍顯示尺規 (Ruler): - 在下拉選單選擇 Tools/Grid and Rulers - 然後再點選跳出視窗的 Show rulers 37

Example 1 改變 GUIDE 面版大小 : 拖放面版右下角的黑點來達成 在面版上放置兩個控制物件 ( 試著調整位置與大小 ) - Edit Text: 可編輯文字 - Slider 38

Example 1 Inspect Properties: 滑鼠右鍵點選任一個 UI 控制物件以改變其性質 39

Example 1: Inspect Properties 左邊 : 物件的性質 右邊 : 性質所對應的值 ( 點選右邊以改變這些值 ) 完成物件代號的設定後 : 可設定物件的反應命令 : - e.g. 想要把 slider 位置與文字欄位輸入的數字互相對在一起 - 目的一 : 拖放 slider, 將 slider 的位置 ( 預設值 : 0 ~ 1 ) 顯示在文字欄 - 目的二 : 文字欄位值被改變 : slider 的位置能夠隨之改變 在 GUIDE 的環境下 - 物件的反應命令由特定的反應函式來完成 - 反應函式名稱 : 物件代號 _Callback 40

Example 1 滑鼠右鍵點選 slider 並選取 View Callbacks/Callback => 開啟 MATLAB 程式編輯器 此程式編輯器會顯示反應命令必須加入的位置 slider 的 Tag: slider1 ( 看 fig 左下角 ) 反應函式 : slider1_callback() 程式自動產生程式碼 加進去兩列 : 使用者加入程式碼 41

Example 1 加入文字欄位的反應命令, 其反應函式是 edit1_callback() 加進去的兩列敘述 : 42

Example 1.fig: 只是設計, 無法執行 開啟可使用的 GUI 介面 : 按下 GUIDE 面版的工具列的三角形按鈕 由於所產生的程式碼並不在 MATLAB 的搜尋路徑中, 因此會先跳出一個詢問視窗 : 43

Example 1 跳出我們所設計的 GUI 介面如下 : 目的一 : 拉動 slider, slider 的位置就會顯示在文字欄位內 目的二 : 修改文字欄位的值, 可指定 slider 位置 44

Example 1 設計反應命令時 - 要能讓不同的 UI 控制物件都能存取其他物件及相關資料 - 因為每個 UI 控制物件的反應命令都是以函式的型式來進行 GUIDE 在每個反應函式內提供了一個結構變數 handles - 以便提供資料的共通, 並達到下列兩項功能 : - 經由 handles 存放或取用共通的資料 - 經由 handles 取得每一個 UI 控制物件的性質 45

Example 1: handles 若要在某一個控制物件的反應函式內存放變數 A, 可以加入下列敘述 : handles.mydata = A; % 將變數 A 存放在 handles 的 mydata 欄位 guidata(hobject, handles) % 將新的 handles 存回整個 GUI 介面 若要在另一個控制物件的反應函式裡面使用變數 A, 只要加入下列敘述即可 : A = handles.mydata; 46

Example 1 handles 本身也包含了同一個 GUI 介面下的所有控制物件, 因此你可以在任一個反應函式內取用每一個控制物件, 如下 : handles.slider1:slider 物件 handles.edit1: 文字欄位物件 47

Example 2 改進 : 若輸入不合法的數值時能回應錯誤訊息並記錄錯誤次數 - 由 GUIDE 面版開啟 gui01_test - 點選 File/Save As 將之儲存成 gui02_test - 此時 GUIDE 會開啟 gui02_test.m - 在 gui02_test_openingfcn() 函式加入敘述 : 48

Example 2 修改文字欄位的反應命令 : 49

Example 2 執行此應用程式, 在第 7 次輸入不合法的數值後 : 50

Example 4: 選單編輯器 ( 自行練習 ) 目的 : 在視窗的最上方加入階層式的下拉式選單 開啟空白面版並加入圖軸 : 51

Example 4 開啟 MATLAB 編輯器 : 點選 View/View Callback/CreateFcn 畫圖 : 在 gui04_test_openingfcn() 函式加入 peaks; 52

Example 4: 選單編輯器 目的 : 設計階層式的選單來控制此曲面的呈現方式 選單編輯器 : 點選 Tools/Menu Editor 產生新選單 : 點選左上角的圖示一次 改變選單性質 : 點選選單, 右邊出現相關選項, 可改選單名字等特性 53

Example 4: 次選單 產生次選單 : 點選圖示 => 可產生多層階層式選單 刪除選項 : 點選某一選單, 再點選圖示 開啟每個選單的編輯器 54

Example 4 目的 : 對每個最底層選項修改相關的反應函式 點選右邊 View=> 開啟 MATLAB 編輯器 在每個選項的反應函式所加入的命令如下表所示 : 選項 Shading/faceted Shading/interp Shading/flat Colormap/Gray Colormap/Cool Colormap/Summer 命令 shading faceted shading interp shading flat colormap gray colormap cool colormap summer 55

Example 4 56

其它說明 ( 自行練習 ) 樹狀物件瀏覽器 (Object Browsers) 點選 GUIDE 的 View/Object Browser 來開啟物件瀏覽 物件瀏覽器 : 點選任一個物件開啟對應的性質檢視器 57

其它說明 ( 自行練習 ) 對齊物件 : 點選 GUIDE 的 Tools/Align Objects 使用對齊功能 : 先選取多個物件再點選這個選單來進行對齊對齊前 對齊後 58