Microsoft Word - GUI design.doc

Size: px
Start display at page:

Download "Microsoft Word - GUI design.doc"

Transcription

1 GUI 程式設計 壹 圖形元件 一 認識圖形元件 hndlgraf 指令 Handle graph 的縮寫 說明 二 認識圖形元件的 handle 指令 get(h, 'pr') get(h) set(h, 'pr1', 'val1', 'pr2', 'val2') set(h) 說明取得 handle h 的某屬性 (properity) 之數值取得 handle h 的所有屬性之數值設定 handle h 的某屬性 (properity) 之數值設定 handle h 的所有屬性之數值 x=linspace(-3,3,100); y=normpdf(x,0,1); h=plot(x,y) get(h) get(h, 'marker') set(h, 'marker', 'o') set(h, 'linewidth', 2, 'markersize', 16) 指令 Marker Markersize markeredgecolor markerfacecolor linewidth 標誌符號標誌符號大小標誌符號的邊框標誌符號的內面線段寬度 說明 三 取得繪圖區與繪圖視窗的 handle 指令 說明 ha=gca 取得繪圖區之 handle, 若無則回應 [ ] hf=gcf 取得繪圖視窗之 handle, 若無則回應 [ ] 1

2 四 關閉繪圖視窗 close close all close (h) 指令 說明關閉目前的視窗關閉所有的繪圖視窗關閉 handle 為 h 的繪圖視窗 2

3 貳 認識 UI 元件 (user interface) 一 UI 元件基本認識 指令 h=figure('pr', 'va1', 'pr2', 'va2',...) h=uicontrol('pr', 'va1', 'pr2', 'va2',...) 說明建立一個繪圖視窗並設定 handle 與其屬性值建立一個 UI 控制元件並設定 handle 與其屬性值 h1=figure('position', [ ], 'Menubar','none','Name','MY GUI') get(h1) set(h1, 'color', 'white') h2=uicontrol('style', 'pushbutton', 'Position', [ ],'String', 'push me') 3

4 set(h2, 'Position', [ ]) 二 UI 控制文件設定 Style 說明 用途 'pushbutton' 按鈕 'radio' 選擇按鈕 單選 'toggle' 雙態按鈕 按下與彈開兩種狀態 'checkbox' 核取方塊 複選 'edit' 文字方塊 可輸入文字 'popup' 下拉選單 單選 'listbox' 選擇表單 單選或複選 'slider' 捲軸 拖拉方式輸入數值 'text' 靜態文字方塊 靜態文字 三 UI 控制文件的屬性設定 Style 說明 用途 BackgroundColor [red green blue] 背景顏色 CallBack 設定該元件被觸動時所要執行的指令 Enable [on {off} ] 設定元件是否在可用的情況 ForegroundColor [red green blue] 前景顏色 HorizontalAlignment [left {center} right] 文字的對齊方式 Max 設定捲軸最大值 Min Position [left button width height] 元件位置與大小 String Style {pushbutton} radiobutton... SliderStep 設定捲軸每次可移動的大小 TooltipString 設定工具提示的小字串 Value 4

5 Tag 設定元件標籤, 以方便函數找尋 Visible [{on} off ] 設定元件是否顯示出來 5

6 參 建立按鈕與核取方塊 close all figure('position', [ ], 'Menubar','none','Name','MY GUI', 'Color', 'white') uicontrol('style', 'checkbox', 'Position', [ ],'String', 'checkbox') uicontrol('style', 'radio', 'Position', [ ],'String', 'Radio button', 'Value', 1) uicontrol('style', 'toggle', 'Position', [ ],'String', 'Toggle button') 6

7 肆 建立動態與靜態文字方塊 close all figure('position', [ ], 'Menubar', 'none', 'Name', 'MY GUI') uicontrol('style', 'edit', 'Position', [ ], 'String', 'This is an editable text', 'HorizontalAlignment', 'left', 'Max', 2, 'Min', 0) uicontrol('style', 'text', 'Position', [ ], 'String', 'This is a static text') 7

8 伍 建立選擇表單與下拉選單 close all figure('position', [ ], 'Menubar', 'none', 'Name', 'MY GUI') h1=uicontrol('style', 'popup', 'Position', [ ], 'String', 'apple orange banana') h2=uicontrol('style', 'listbox', 'Position', [ ], 'String', 'cat dog pig', 'Max', 2, 'Min', 0) 8

9 陸 建立捲軸 figure('position', [ ], 'Menubar', 'none', 'Name', 'MY GUI') h1=uicontrol('style', 'slider', 'Position', [ ]) h2=uicontrol('style', 'slider', 'Position', [ ]) 9

10 柒 對話方塊的設計 指令 msgbox(message, title, icon) questdlg(question, title, b1, b2,...) inputdlg(prompt, title) 說明建立對話方塊建立可供選擇的對話方塊建立輸入對話方塊 msgbox(' 輸入必須為整數 ', 'Warning msg', 'warn') msgbox(' 輸入錯誤, 請重新輸入 ', 'Error msg', 'error') msgbox(' 請求協助 ', 'Help msg', 'help') questdlg('are you sure?', 'Confirm', 'yes', 'no', 'no') 10

11 questdlg('are you sure?', 'Confirm' ) str=inputdlg('input a number', 'Input dialog') num=str2num(str{1}) str=inputdlg({'number1', 'number2'},'input dialog') 11

12 捌 簡單的事件處理 一 按鈕的事件設計 figure('position',[ ], 'Menubar', 'none'); hclose=uicontrol('style', 'pushbutton', 'String', 'Close'); hwhite=uicontrol('style', 'pushbutton', 'String', 'White', 'Position',[ ]); hred=uicontrol('style', 'pushbutton', 'String', 'Red', 'Position',[ ]); htxt=uicontrol('style', 'text', 'Position',[ ]); cmd1='set(htxt, ''BackgroundColor'', ''white'')'; cmd2='set(htxt, ''BackgroundColor'', ''red'')'; set(hclose, 'Callback', 'close'); set(hwhite, 'Callback', cmd1); set(hred, 'Callback', cmd2); 二 將 Callback 所要執行的指令寫成 M 檔案 %script17_2.m figure('position',[ ], 'Menubar', 'none'); hclose=uicontrol('style', 'pushbutton', 'String', 'Close'); hwhite=uicontrol('style', 'pushbutton', 'String', 'White', 'Position',[ ]); hred=uicontrol('style', 'pushbutton', 'String', 'Red', 'Position',[ ]); htxt=uicontrol('style', 'text', 'Position',[ ]); cmd1='set(htxt, ''BackgroundColor'', ''white'')'; cmd2='set(htxt, ''BackgroundColor'', ''red'')'; set(hclose, 'Callback', 'close_check'); set(hwhite, 'Callback', cmd1); set(hred, 'Callback', cmd2); 12

13 result=questdlg(' 確定要關閉?', 'Window closing', 'yes', 'no', 'no'); if strcmp(result, 'yes') close end ( 一 ) 下拉選單與核取方塊的練習 : 製作 Z 分配與 t 分配圖形比較 GUI % Z À t»pt À t ñ û figure('position',[ ],'Menubar','none'); axes('position',[ ]); % «Ø ßà ¹Ï Ï ó chk=uicontrol('style','checkbox','string','grid',... 'position',[ ]); pop=uicontrol('style','popupmenu','string',' ',... 'position',[ ]); set(pop,'callback','ztplot'); % í U Ô ï³æ³q ï¾ü É A«K õ æztplot.m set(chk,'callback','grid'); % í Ö ú è ô³q ï¾ü É A«K õ ægrid«ü O 13

14 switch get(pop, 'Value') case 1 df=1; case 2 df=5; case 3 df=10; case 4 df=30; case 5 df=100; case 6 df=1000; end x=linspace(-3,3,100); y=normpdf(x,0,1); y1=tpdf(x, df); plot(x,y,'-r', x, y1, '--b'); legend('z distribution', 't distribution',2); if get(chk, 'Value')==1 end grid on 14

15 ( 二 ) 選擇按鈕的練習 figure('position',[ ], 'Menubar', 'none'); axes('position', [ ]); h(1)=uicontrol('style', 'radio', 'String', 'red', 'Value',1,'Position',[ ]); h(2)=uicontrol('style', 'radio', 'String', 'green','position',[ ]); h(3)=uicontrol('style', 'radio', 'String', 'blue','position',[ ]); set( h(1), 'Callback', 'plot_data(h, ''r'', 1)' ); set( h(2), 'Callback', 'plot_data(h, ''g'', 2)' ); set( h(3), 'Callback', 'plot_data(h, ''b'', 3)' ); plot_data(h, 'r', 1); function plot_data(h, color, i) set(h, 'Value', 0); set(h(i),'value',1); x=linspace(-3,3,100); y=normpdf(x,0,1); lin_color=color; plot(x,y,lin_color, x, y, '.r'); 15

16 ( 三 ) 選擇表單的練習 figure('position',[ ], 'Menubar', 'none'); hlist1=uicontrol('style', 'listbox', 'Position',[ ], 'Max',2, 'Min', 0, 'HorizontalAlignment', 'left', 'String', 'var1 var2 var3' ); hlist2=uicontrol('style', 'listbox', 'Position',[ ], 'HorizontalAlignment', 'left'); hcopy=uicontrol('position', [ ], 'String', 'Select'); hclear=uicontrol('position', [ ], 'String', 'Clear'); clr='set(hlist2, ''String'','' '' )'; set(hcopy, 'Callback', 'item_copy'); set(hclear, 'Callback', clr); val=get(hlist1, 'Value'); str=get(hlist1, 'String'); set(hlist2, 'String', str(val,:)); 16

17 ( 四 ) 捲軸的練習 figure('position',[ ], 'Menubar', 'none'); axes('position', [ ]); hsld=uicontrol('style', 'slider', 'Position', [ ],'Max', 1000, 'Min', 1, 'Value', 1, 'SliderStep', [1/1000, 10/1000]); df=get(hsld, 'Value') ; chi2=chi2inv(.95, df) ; hedit1=uicontrol('style', 'edit', 'Position', [ ], 'String', df); hedit2=uicontrol('style', 'edit', 'Position', [ ], 'String', chi2); set(hsld, 'Callback', 'chisqplot'); df=get(hsld, 'Value'); chi2=chi2inv(.95, df) ; set(hedit1, 'String', round(df) ); set(hedit2, 'String', chi2 ); x=linspace(0,100,1000); 17

18 y=chi2pdf(x,df); plot(x,y) 18

ó ú à ù á í í ì ì ù á ù í í ò ó ú ù à ì ì è á í í ì è á ù è ì à ú ì ù ì í à ì ì ó ì ì è ì è á ó à ó ò é ú? à á á ú á í é ì é ì á à á ù á à ò á ò é ù? ì

More information

1989 67 1993 125 305 1989 251 1964 8 1990 231 1983 608 1987 207 1990 6 ú é ì à í à ó 1990 51 é í í ù è ì ò ú à ù ó ú è í à ì è è è í á ó ì á á ò ì á ò

More information

è

è è à à à í á à à ì ú ú á ú ú ì ì í ù í à ú è ò ò ì ù ì à ì à í ì ì è è è é à ì é é á è í í à ì è ì ú í ù ì ò è à í ì à á è ì ó ú è é é ì é ì ì ì ú ó ì à ú á

More information

í í à ù à à í è è ú ì á á í à ú á è á ú à é à ù ú ì ì ì ò í è ì ì í ì ì ì è ì ì à é ó ò ó ú é ì ù ì í ó è ì à è á à ì à à à í í é á à ù ì ò ì é ú í í à à à à

More information

030 í á ì ú è ì à é ù ò í í ú ù ù á í í ì ù ó ù ì è à é é ú í ì ù ì è ò á à ì ì ì ì ì á ú ì é í í é ò í ì é è ú ú í é ú è à è è à è ó à ò ù à à ù ó ì ì ì à à ù à á ú á ì á ù ù è

More information

ttian

ttian í á é ì ì ì ó á ú è ù ó è á á é ì ú á á ò á è è ó é è ì á à á

More information

é ú í í à á í à ù à é ó à è á ù á à à ì á á à é í á ò è ì í ì ù à é ì ì à à è ù é à ù à é ú ì ú ù 1 1 3 4

More information

ì

ì ì ó à á à í é é è ú à ú ù è í ù è á ú é ù í é à ú á à í ó ò è ì ì é à à á ò à ú è ó á à í ù ú ì ì í ì á è ù ù ò ó á ì ì à è á á ì à ó è ì á ì ì à é ì ó é à ú í ì í á à á

More information

ò ó ì á è ó

ò ó ì á è ó ò ó ì á è ó à à è ì è á ó ì à ì à à à á ì ó à ì ì è ó à ú ì í í á ù ò ò í ì ó à ò ú ó ì à à à à à à í á ì ù ù è ù è ò è ù é à

More information

ò à í é ì è ì é á à è à è è ì á á à à à

More information

á á á ú é ó é é á í í á ú á é á á í í é

More information

ú á à à á á è ù? ì í ì á ì ò é? é à ì? à ó é à ì à à ì é í ì è? à ì á ú ó á á ì ù ì è ù

More information

ò ú ó ó ú ó ú ó ú ú ó G L E = G W à è í ü í ü ü á á á á á á á á

More information

ú ì à ì ù ù é à à à í ú ì ì à í à é ì ó à è à ù ì é á ù ú ò ù ù ò

More information

ò í ú ó ì à ò è 5500 500 2 5500 x 23 50 2 5 2 5 9 5 10 9 5 9 9 4 4 10 64 9 9 74 10 1 5 2 1 9 5 5 4 9 7 1 5 1 3 2 1 3 1 5 1 3 1 5 1 1 5 1 3 1 1 1 4 1 4 2 40 40 1

More information

à á à è à è à ú à á á á à á è à à ù ú ù í á è è í á è è è è è ù ò í è è ì à à è á è úí à à ì á í é è á à ì à é à è è í ú º ú

More information

é

é à á í ù é ù ó á è í ú ù è ì í á ì ú á é ó ú ò ì ò ì à ù à ì è ì ì à è ì ó è ú á è í ì é ì éá ì é ì ù è è í í ù á à à è è à ú á ó ú è í ú á ú è ì ù ú é ì é à ú ù ì ì ó í è ì ì

More information

ì à à ó é í í à ì í ó à í á ò ó ì í ì í í ù ó à í ì à ù à ú è à à à ú ó ò í ù è á á é è ò ì ì ì è é ù ì à ì á ù à á ò í à ì é á è á ì ò ó è ì ò ú ì ó é ú í ú è ù í í à ó ú ú

More information

è á à ì ì ì ò à ó ù ú à ò è ù è è ò í á è ù è à ù à è á ú á í à à à é à à à é à èi ú á à à ó á ì à à á è à à á ó à á ù à à á ì ó à í à é ò ú ì à ò ì à ù ì é à í í á á è ò á á á á

More information

ü Ä ä ä ï ï ü ä ä

ü Ä ä ä ï ï ü ä ä ü Ä ä ä ï ï ü ä ä ü ü ü ä 50000476_0047_2 2 3 316 ó é â á ó ü ü ü ü ü ü ü ü ü ü ü ü é é ô é ò è é ü ü ü ü ü

More information

è ì è é è ò ì ù ù ó é ú ù è ó ì ù à è ùè á ù ù ò ó ò ù à é ù ò ì í à à à à ò à á è à è ù é é ì ú ì à à ì é ù é í ì ò

More information

ó ú ú ì á ò à á ì ù í ü à ò á ò á à á

More information

ó ì ì ò = 4( +5 / 3 ) 3 12.478 = 2.32 23.2 (47) 1 365 4 1 4 1 19 365 1 365 4 = 29 499 4 235 940 V M = 1 3300 182 M M á

More information

ó ì ì ò = 4( +5 / 3 ) 3 12.478 = 2.32 23.2 (47) 1 365 4 1 4 1 19 365 1 365 4 = 29 499 4 235 940 V M = 1 3300 182 M M á

More information

è à è è à à ó á ò ó ù ì à à ì ù à à è ù à ó á ù è à ò ì ò òú ù è à à ì ò ì ù í ù ì è í ú ò ì ù á ì è ì á à à ò ì ì ì ó é á é ú à ú ù ì à ó ì è á ì ù ì à à á í á á à ì è ì è á í á à à á è é ù í í è

More information

3 5 5 3 1 9 1 0 1 0 1 0 1 0 1 2 1 2 1 2 2 π 202 2 3.14 100 2 628 a 12 15 x a 20 = 9 2 2 3 2 4 2 5 2 1 2 2 ìí ì í à á à á á à è é è ò è à ó ò ì ù à í

More information

85 1957 3 4 143 131 142 37 4 480 490 490 22 140 25 2 35 35 492 197 4 59 488 488 1996 1 19 124 332 138 18 128 6 2 134 28 123 159 20 120 35 486 264 486 42 1992 5 1959 5 1983 139 165 6 298 221 83 11 1956

More information

á ì é ò í í í à ò è á è ú á ú á ú é é á ò ì ò ì ú ì ù á à ì ì ì ò í ì à ò á ù ì à á á é ò ó ì í á ù à è ú ì à ú ò ú ó ó é à ó ú ì ì ì à ì ì è í í ú è ú í é è ù

More information

9 + ( 9 + 1) 2 9 6 ( 9 + 1) 6 54 60 3240 + 1 + 1 = + 1270 + 1 = 271 2 6 2 6 12 6 + 1 = 271 ó ù ó ì á ó ò è ù à 365 1 499 4 29 940 ó á 29 43 81 ì è 2 3 5 2 18 20 3 5 7 3 20 22 4 4 6 4 19 21 5 5 7

More information

1988 11 20 1 ( ) ( ) ( ) ( ) 2 ( ) (, ) 3 ( ) ( ) ( ) ( ) ò ò ó í è

More information

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 é 48 è 49 50 51 à 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68

More information

é è à è è ê é è ü

More information

ù á ù é à è è è à è è è è è è è è è è è è è è è è è è è è è è è è ú

More information

ù á ù é à è è è à è è è è è è è è è è è è è è è è è è è è è è è è ú

More information