저작권 : 오정 (http:/ / oxstart.

com)
배포처 : MATLAB 전문학교 (http:/ / matlabschool.com)

우선, M atlab 으로 작성 할 수 있는 GU I 프로그램 요소들이 갖는 의미부터 알아보도록 하
자.
대부분의 M atlab

GUI 프로그램은 13개의 객체(Object ) 중에서

U i c o n t ro l , U im e n u ,

U ic on t e x tm e n u "라는 Object s에 의해서 설정할 수 있다.
이들 객체(Object )들에 대해서는 서로 간에 계층이 형성되어 있다.
그런데, m atlab v er sion이 up gr ade되면서 새롭게 추가된 것들이 많이 있다.
즉, 현재 사용하는 m atlab v er sion 에 따라서 그래프 표현 능력에 차이가 있다는 뜻이다.
예를 들면, m atlab5.0이후 버전부터 uicontr ol 요소인 fram e , listb ox 등이 나타났고, m atlab 6.0
에는 그래픽 object로 r ect an g le object가 새롭게 추가되었다.
그러나, 이들 객체를 제어하는 방법은 역시, s et .m , g et .m 함수에 의해서 이루어진다.
그러므로, 이들 13개 객체들이 갖는 여러 가지 pr op erty n am e과 그에 따른 property v alu e의
특성을 파악한다면, 쉽게 사용자가 원하는 그래프를 만들어 낼 수 있다.
m atlab5.0에 있는 g u id e .m 함수를 사용하여 GUI 프로그램을 작성하는 경우에는 보통, *.m
*.m at file이 만들어졌었다.
그러나, m atlab6.0부터는 g uide .m 함수를 사용하여 GUI 프로그램을 만드는 경우에는 *.m ,
* .f ig file이 만들어진다.
m atlab5.0에서 만들어진 *.m at file은 단순히, GUI에 관련된 dat a들만 저장하였다. 그래서,
GU I 프로그램을 만들기 위해서는 *.m file에서 고전적인 재 귀 호 출 방법을 사용해야 했었다.
그러나, m atlab6.0에서 만들어지는 *.fig file은 GUI 프로그램을 작성하는 데 필요한 재귀 호
출 r ou tin e을 포함하고 있으므로, *.m file에서는 단순히, ev en t만 처리하면, 쉽게 GUI
pr og ram 을 작성할 수 있다.
예를 들어서, [그림 1]과 같은 GUI 프로그램이 있다고 하자.
m atlab5.0에서

gu ide.m 함수를

사용하여

[그림

1]과

같은

GUI

프로그램을

만들고,

M atlab GUI.m 이라고 저장하면, 자동으로 gu ide.m 함수가 M atlab GUI.m at file을 만들어 준다.
이때, M atlab GUI.m at file에는 사용한 obj ect의 pr oprty v alu es가 저장된다.
이제, M atlab GUI.m 함수를 실행하면, M atlab GUI.m at file과 함께 [그림 1]과 같은 GUI 프로
그램을 초기화하면서 발생시킨다.
만일, 버튼을 click하는 ev ent가 발생하면, 이 ev en t는 M atlab GUI.m 함수를 재귀호출하고,
버튼에 관련된 callb ack함수가 실행하면서 GUI 모양을 갱신하게 된다.
결국, m atlab5.0버전에서는 항상, ev en t가 발생할 때마다 M atlab GU I.m 함수가 재귀호출 된
다.

- 1 -

[그림 1] M atlab 5.X GUI와 M atlab6.X GUI의 차이점.
그러나, m atlab 6.0에서 gu ide.m 함수를 사용하여 [그림 1]과 같은 GUI프로그램을 만들고,
M atlab GUI.m 으로 저장하면, gu ide.m 함수가 자동으로 M atlab GUI.fig file을 만들어 준다.
이제, M atlab GU I.m 함수를 실행하면, M atlab GUI.fig file이 호출되어 [그림 1]과 같은 GUI를
초기화하여 발생시킨다.
이제, 버튼을 click하여 ev ent를 발생시키면, M atlab GUI.m 함수가 ev en t를 처리하고, 다시,
M atlab GUI.fig file을 호출하여 버튼 click ev ent를 반영한 새로운 GUI로 갱신해 준다.
그러므로, ev ent가 발생할 때마다 M atlab GUI.m 함수는 ev en t를 처리해주는 r ou tin e만 codin g
하면, GUI를 갱신하는 것은 M atlab GUI.fig가 알아서 처리하므로, m atlab5.0과 같이 복잡한
재귀 호출을 직접 codin g하지 않아도 된다.
그러나, 실질적으로, m atlab

버전에 관계없이 GUI pr og r am 은 그 구조상 재귀 호출

m ech an ism 이 항상 사용된다.
정리하면, m atlab5.0에서는 GUI와 관련된 재귀호출을 *.m file에서 작성해야하고, m atlab6.0
에서는 GUI와 관련된 재귀호출이 *.fig file에 숨어있으므로 신경쓸 필요가 없다.
또한, *fig file은 *.m at file처럼 쉽게 그 내용을 열어서 읽어 볼 수 없다.
이번 단원에서 여러분과 함께 만들 GUI 프로그램은 [그림 2]와 같다.
GU IDem o.m 함수는 거의 모든 GU I관련 요소들을 사용한 것이다.

- 2 -

[그림 2] GU IDem o.m

주의 :
필자가 그 동안 많은 m atlab 강의를 해본 결과, 기존에 V isu al C ++, Visu al Ba sic
등으로 GU I pr ogr am 을 작성해 본적이 있는 분들은 다음에 설명할 내용이 쉽게 이
해가 가겠지만, GU I code를 처음 작성하는 분들은 다음의 내용들이 쉽게 이해가
되지 않을 것이라고 본다.
그러나, 처음에는 대충, m atlab으로 GUI pr og r am 을 만드는 대략적인 방법만 알아
두고, 다시 처음부터 보면, 이전에 이해하지 못한 부분들이 쉽게 이해가 될 것이라
고 생각한다.
그러므로, 다음에 주어진 내용들은 적어도 GUI를 처음 하는 분들이라면, 3번은 읽
어보아야 할 것이다.

- 3 -

선택된 u icontr ol은 대부분 c allb a c k " pr operty n am e에 의해서 대응하는 함수나 M . F ra m e 은 M atlab5. Uicontr ol Object의 GUI요소 사용 방법 : Uicontr ol Object에 속하는 GU I 요 소 (pro p e e rt y n am e )들은 사용자가 앞으로 어떠한 선택 이나.4 - . callb ack 과 관련된 복잡한 내용들 은 모두 *.file 을 직접 작성해 주면 된다.0의 g uide함수를 사용하면. m atlab6. U icontr ol Object가 제공하는 요소(pr operty n am e )들에 대해서 알아보자. 사용자는 단순히.fig file에 들어 있으므로. 능동적으로 대처하기 위해서 제작된 것이다. 그러나.0이후 버전에 추가된 기 능이다. 명령(action )을 하고자 원할 때. callb ack "에 대응하는 함수나 M .1. . 이제. *Pu sh Bu tt on *Ch eck B ox *P op .up m en u s *Radio butt on s *Slider *E dit able tex t *Static tex t *fr am e *List Box 위에서 열거한 pr operty n am e 중에서 Li s t B o x .file을 실 행하게 된다.

5 - . Uicon tr ol Obj ect의 GUI요소 사용 방법 [그림1.1]은 Uicon tr ol" Object s에 속하는 요소(pr op erty n am e )들을 나타내 본 것이다. 또한. 그러나.1]에 나온 요소들의 모양이 다를 수 있다.1. 중간 중간 에 해당 요소들을 설명해나가는 것이 좋을 것 같다. 주어진 GUI 프로그램을 작성하는 방법을 설명하면서. [그림 1.1]에서 (h )는 f ra m e "이라고 불리는 pr operty n am e이고.1]에 제시한 9개 요소들을 일일이 상술하자면. [그림 1. 너무 많은 내용을 요구하므로.1] Uic o nt ro l O bje c t의 요소들 [그림 1. 이들 9개의 요소들은 각각 고유한 성질들과 공통된 성질들을 가지고 있다. GU I 예제를 하나 만들고. (b )는 S li de r "라고 불리는 pr operty n am e이다. 사용하는 시스템에 따라서 [그림 1. 해당 요소들의 기능은 시스템에 상관없이 같다고 보면 된다. . 우선.

fig "이라는 Lay ou t E ditor w in dow 가 만들 어 질 것이다.2]에 보였 다.m 함수는 m atlab6.m g uide. [그림 1. . M atlab com m an d w in dow 에서 g uide. 이제. 기본적인 기 능을 부여하며.m 함수는 GUI 요소들(즉.0이후부터 소개된 g uide. 우선. 물론.6 - .3]과 같은 Lay ou t E ditor w in dow 가 만들어진다.fig file을 만들어 주는 함수이다.2]의 GU I 프로그램에서 Uicontr ol을 제작하는 것부터 설명해 나가겠다.2 ] GUIDe mo . [그림 1.1. com m an d w in dow 에 있는 F ile " m enu 에서 N e w m enu 의 서브 m enu 인 GUI m enu 를 선택하여도 [그림 1. Uicon trol Object의 GUI요소 사용 방법 앞으로 여러분이 m atlab 의 gu ide함수를 사용하여 작성할 GUI프로그램을 [그림 1. m atlab5. [그림 1. □gu ide 위와 같이 명령하면.m "함수를 호출해보자.m file과 *. slider등등)을 figu r e object에 배치시키고.0에서 그 기능이 상당히 향상되어 쉽게 사용자가 GUI pr ogr am 을 작성할 수 있게 도와 준다. 버튼. 해당 *.3]과 같은 un titled 1.

Uicon tr ol Obj ect의 GUI요소 사용 방법 [그림 1. m ou s e의 왼쪽 버튼을 누른 상태(pre s s e d )에서 움직여가며. m ou se poin ter가 plu s 모 양 (즉 .3 ] Layo ut Ed ito r wind ow의 모습 [그림 1.4]와 같이 .2]처럼 각각의 Object s를 위치시키는 작업을 해보자. F ig ur e A ctiv at or icon 을 click하여 작성한 GU I를 저장하면. 모 든 GU I 작 업 은 [그림 1. [그림 1. 이때.3]의 Lay out E dit or는 다음과 같은 부가적인 lay ou t t ools를 가지고 있다.2]에 나와 있는 크기만 큼 A x es Obj ect를 잡아준 뒤에 m ou se의 버튼을 놓으면(re l e a s e d ).7 - . 먼저.1.3]과 같이 con tr olled state에서만 이루어 질 수 있다. + ) 으로 바뀌는 것을 볼 수 있을 것이다.3]의 Co m p o n e n t P ale tt e 라고 lab elin g 된 영역에 속하는 A x e s 에 m ou se를 위치시 키고. [그림 1. 사용자가 desig n한 GUI w in dow 를 미리 볼 수 있다. 작업이 끝나고 sav e를 하는 경우에는 fig ur e Obj ect가 A c tiv e s t a t e 로 바뀐다. 4 ) M enu E ditor : w in dow m enu 와 con tex t m enu 에 대한 E ditor . 1) A lig nm en t T ool : 각각의 Com pon ent를 사용자가 원하는 위치로 정렬하는 것을 도와 준다. 이때의 Lay out A r ea를 contr olled figu r e 라고 부른다. 3 ) Object Br ow ser : Lay ou t A r ea에서 첨가한 com p on ent에 대한 객체들의 계층도를 보 여준다. [그림 1. 왼쪽 버튼을 누른 뒤에 Con t rolle d F i g u re 에 가져가면. A x es Object를 Contr olled fig ur e에 첨가시킬 수 있다는 것을 의미한다. 이것은 현재. 2) P roperty In spect or : 해당 com pon ent의 property v alu e에 대한 edit or . [그림 1.

1. [그림 1. [그림 1. 그러면. . [그림 1.5]와 같은 P rop e rty In s p e c t o r가 만들어 질 것이다.4]와 같이 새로운 A x es Object를 figu r e에 첨가시킨 뒤에.3]에 있는 P rop e rt y In s p e c t o r를 선택 해본다. [그림 1. 앞에서 배운 A x es Object에 속하는 pr op erty n am es와 각각의 pr operty v alu e s가 나열되어 있는 것을 알 수 있을 것이다.4 ] Axe s Obje c t의 생성 [그림 1. Uicon trol Object의 GUI요소 사용 방법 A x es Object가 생성 될 것이다.8 - .5]를 살펴보면. [그림 1.5 ] Pro pe rty Ins pe cto r Wind ow.

그러면. [그림 1. m in u s 기 호 (즉 . 여기서. [그림 1. 임의의 object it em . 즉. 예를 들면..) 은 해당 객체의 low lev el Object s가 아래에 나열되어 있다는 것을 말해준다. Uicon tr ol Obj ect의 GUI요소 사용 방법 조정하고 싶은 pr operty n am e이 있다면 해당 pr operty v alu e를 m ou s e로 클릭한 뒤에 조정해 주면 된다. [그림 1.6 ] Obje ct Brows e r wind ow 현재. 2편 에 서 계 속 . Lay out E ditor상에서 존재하는 Object는 F igu r e Object와 그 low er lev el인 ax es object .5]에 설치 해보자. . A x es Object의 하위 lev el object s가 A x es object it em 아래에 나열 된다. fig ur e Object의 low lev el Object인 A x es Object가 figu r e Obj ect의 아래에 표시되어 있 는 뜻이다. A x es Object의 low lev el Object s를 편집하기 위해서는 plu s 기 호 를 m ou se로 클릭하면 된다.. 이제.6]과 같이 Object Br ow ser w in dow 가 나타난다. 그러나.2]에 있는 P u s h b u t t on "을 [그림 1. 그러므로. A x es Object를 설치했던 방법으로 하면 된다.3]의 Lay ou t A r ea에 첨가되는 모든 Com p on ent s는 [그림 1.3]의 Ob j e c t B ro w s e r icon을 click 하면.6]에 계층별로 첨가될 것이다. 앞으로. 원하는 pr operty n am es에 대해서 편집을 하였으면 반드시 Lay out E dit or에서 저장을 해 주 어야 한다. ax es (ax es 1) object를 m ou s e로 dou ble click하면. + ) 은 해당 객체의 low lev el Object s가 아래에 나와 있지 않다는 것을 의미한다. 이렇게 2개가 존재한다는 것을 보여주고 있다. plu s 기 호 (즉 .1. 해당 P roperty In spect or w in dow 가 나타난다. [그림 1. .9 - . [그림 1.

이처럼 선택 된 Object s의 주위에는 직사각형의 작은 점 들 이 둘러싼다. [그림 1.1. 그리고. 여러 개의 Object를 동시에 선택하는 방법은 w in d o w 탐 색 기 에서 디렉토리나. 복사하고 싶은 영역에서 c t rl +v k e y 를 누르면 해당 Object의 복 사 가 이 루 어 진 다 . delete k ey 를 사용하면 된다.7]은 3개의 P u sh butt on 을 설치 한 경우의 모습이다.6]에 있는 Object br ow s er에서 원하는 object s를 m ou s e로 클릭 하거나. 만일. Con tr olled figu r e에서 Object를 복 사 하 는 방 법 도 동 일 하다.7]은 m ou s e로 3개의 pu sh butt on 을 선택한 것이다. 그러나. 즉. 파일 을 선택하는 방법과 동 일 하 다 . Uicon trol Object의 GUI요소 사용 방법 [그림 1.7 ] 3 개의 Pus h Butto n 설치. 원하는 object를 click 한 뒤에 c t rl +c k e y 클릭하면 된다. . m ou se로 object를 선택하고 ctrl k ey 를 pr es s하여 복사하는 방법은 사용할 수 없다. 또는 . 또한. Object를 잘못 설치하여 지우고 싶을 때는. 그리고. Object s를 선택하는 방법으로는 [그림 1.10 - . [그림 1. Con tr olled figu re에서 원하는 Object s를 m ou se로 선택하면 된 다.

[그림 1. B . 해당 delet e m en u를 선택해야한다. [그림 1.11 - .0에서는 m ou se로 선택한 obj ect를 delet e k ey 로 지울 수 없고. .9]와 같이 A .8 ] Alig nme nt To o l의 모습 A lign m ent tool에서 노란색의 직사각형으로 표현된 것이 object s를 나타낸다. 그러면. Uicon tr ol Obj ect의 GUI요소 사용 방법 주의 : m atlab5.8]과 같이 A lig n Object s라고 적혀 있는 w in dow 가 생성 될 것이다. [그림 1.1. 예를 들어서. C라는 3개의 pu sh butt on 이 있다고 하자. [그림 1.7]에 있는 3개 pu shb utton은 정렬이 안되었다. 이처럼 Object의 정 렬 (A li g n m e n t )을 하고 싶은 경우에는 정렬하고자 원하는 obj ect들을 m ou s e로 선택하고. [그림 1.3]에서 A li g n m e n t T o o l을 선택하면 된다.

[그림 1. g uide lin e 오른쪽으로 옮겨 놓는다.9 ] GUI Obje cts 의 정렬방법. . [그림 1. 이때. 위쪽에서도 나타날 수 있고. 파란색의 기준선이 나타난다. 여러 개의 g uide lin e을 사 용 할 수도 있다. m ou se를 B의 왼쪽 모서리까지 dra g하여 놓으면. m ou s e를 ru ler근 처에 놓으면. Uicon trol Object의 GUI요소 사용 방법 [그림 1.10]처럼.10]처럼.10 ] g uid e line 사용 방법. g uide lin e은 [그림 1.1. m ou s e로 나머지 A . 물론. B의 왼쪽 모서리를 중심으로 정렬하고자 원하는 경우에. [그림 1.12 - . C object를 [그림 1.11]처럼.3]처럼. 이제. m ou se의 cu r sor가 양방향 화살표로 바뀐다.

B . B . 이제. C object s가 B object의 왼쪽 모서리를 기준으로 정렬된다. 정렬하고자 원하는 obj ect s를 선택하고.11]처럼. apply b utton을 click하면.11] Bo und ing Box. 오로지 b oun din g b ox 를 기준 으로 정렬이 수행된다는 점에 주의하자. . ctrl k ey 를 누른 상태에서 m ou se로 A . 즉.1. 그밖에 어떠한 정렬 icon 을 click하더라도 b ou n din g b ox 를 기준으로 정렬이 이루어진다.8]에 있는 alig nm en t t ool에서 icon을 click하고. 또한. object를 click한 순서에 따라서 정렬되는 것이 아니라.13 - .11]에 있는 B ou n din g B ox 가 object s 정렬의 기준이 된다. 어떠한 영향을 미치지는 않는다. m ou s e를 dr ag 하여 A . 원하는 정렬이 이루어진다. [그림 1. 선택된 object s를 포함하는 최소한의 직사 각형인 b oun din g b ox 를 기준으로 정렬 icon을 click하면. 그리고. C object를 모두 선택하거나. [그림 1. C object를 모두 선택한다. 선택한 object s를 포함하는 최소한의 사각형을 b ou n din g b ox 라고 하는데. [그림 1. g uide lin e은 object s의 정렬을 수행하는데. Boun din g B ox 의 왼쪽 모서리를 기준으로 정렬된다. B . Uicon tr ol Obj ect의 GUI요소 사용 방법 [그림 1. 솔직히. A . 정리하면.

[그림 1. 3개의 slider에 속하는 property n am e을 동시에 조정할 수 있는 P roperty In spect or w in dow 가 나타난다.13]과 같은 popup m en u를 발생시켜서 Pr operty In spector m en u를 선택한다. B. 이들 3개의 slider의 폭(w idth )과 높이(h eigh t )의 길이를 같게 하기 위해서는 [그림 1. m ou s e의 오른쪽 버튼을 click하여 [그림 1.12 ] A. .1. 그러면.14 - .13 ] Pro pe rty Ins pe c to r의 선택. Uicon trol Object의 GUI요소 사용 방법 [그림 1.14]와 같이. C Obje c ts 의 정렬. [그림 1.12]와 같이 3개의 slider를 모두 선택한 상태에서 Pr operty In spect or icon 을 선택하거나.

h eig ht는 1. 원하는 pr op erty v alu e를 ty pin g 해주면 된다.1.14 ] Pro pe rty Ins pe cto r Wind ow. x 값은 대략 83.15]와 같이 w idth 는 19. pr operty v alu e를 편집한 뒤에는 반드시 Lay out E dit or의 저장 버튼을 click해 주어야 편집된 내용이 반영된다. 각각의 pr op erty n am e에 속하는 pr operty v alu e를 편집해 주기 위해서는. pr operty n am e이 표시된다.8값으로 동일하지만. h eig ht는 3개의 slider 모두 서로 다른 값을 가지므로. 이때. Uicon tr ol Obj ect의 GUI요소 사용 방법 [그림 1. w idth .15 - .v alu es만 alig nm en t 해 주었으므로.0. 편집해 주고싶 은 pr op erty n am e을 m ou se로 선택한다. y . M ix e d라고 설정되어 있을 것이다. [그림 1. pr operty n am e 중에서.12]에서는 3개의 slider에 대한 x . 우선. . [그림 1.14]와 같이 3개의 slider에 대한 position v alu es가 나타난다. [그림 1. 이제. [그림 1.15라고 지정해 주자. 높이와 폭을 동일하게 하기 위해서. position it em 의 왼쪽에 있는 plu s기호를 m ou s e로 click해 주면. 그리고.15]와 같이 진한 녹색으로 선택한. 그러면.

.0에서 제공하는 alig nm en t t ool을 사용하는 방법을 배웠다. [그림 1. 3개의 slider들 사이의 폭을 align m ent t ool을 사용하여 적당하게 분포시켜 주기 위해 서 [그림 1.16]과 같이 설정해 준다.17]과 같이 P refer en ces m en u를 선택하여 준다. pr efer en ce w in dow 가 나타날 것이다. 그러면.18]과 같이. 지금까지 여러분들은 m atlab 6.16 - . 여기서.1. 앞으로의 object s의 설정 방법을 보다 쉽게 배우기 위해서.(distribu tion ) [그림 1. 이제. Uicon trol Object의 GUI요소 사용 방법 [그림 1.15 ] Pro pe rty Ins pe cto r의 사용 방법.16 ] Obje c ts 의 d is trib utio n. "Sh ow n am es in com pon en t palett e"을 선택하고 OK버튼을 click해 준다. [그림 1.

[그림 1.19]와 같이 바뀐 것을 알 수 있을 것이다.1. [그림 1.12]에 있는 com pon en t p alett e의 모양이 [그림 1.17 ] Pre fe re nc e me nu 사용 방법. .18 ] Pre fe re nc e Wind ow.17 - . Uicon tr ol Obj ect의 GUI요소 사용 방법 그러면. [그림 1.

18 - . 위쪽에 있는 editb ox 에 . [그림 1.1. 그리고.20]과 같이 불러온다.1:10.2]를 완성하기 위해서는 그 밖의 여러 object s가 필요한데. Uicon trol Object의 GUI요소 사용 방법 [그림 1. 2개의 editb ox 를 설정하 는 방법을 더 배워보자. [그림 1.20 ] Ed itbox의 Pro pe rty Ins pe cto r . 의 s t rin g 을 입력하 기 위해서 위쪽에 있는 editb ox 를 m ou se로 선택하고.2]에 있는 것처럼. [그림 1. Pr operty In spect or w in dow 를 [그림 1. 이들 2개의 editb ox 를 com pon en t p alett e에서 선택하여 위치시킨다.10:0.19 ] Co mpo ne nt pa lette 의 모양이 바뀌었다.

이제. . [그림 1. 이곳에. fr am eb ox 가 뒤로 가고.2]와 같이 된다. 같은 방법으로. 그 옆에 있는 icon 을 click하면.22]와 같이 p opup m en u가 나타날 것이다.이 입력된 것을 볼 수 있을 것이다. [그림 1. 사용할 초 기 값 들이다. [그림 1.21]과 같이 Strin g property n am e에 대한 property v alu e를 편집할 수 있는 w in dow 가 나타난다. [그림 1.19 - .와 같이 ty pin g 해 주 고 OK 버튼을 click하면.1:10. 아래쪽에 있는 두 번째 editb ox 에는 sin (x )라고 입력 해 주자. editb ox 사 앞으로 나와서 [그림 1.22]와 같이 sen d to b ack 버튼을 click하면. [그림 1. 문 자 열 들은 GUI pr ogr am 이 처음 만들어 질 때. editb ox 에 . 이때.10:0. fr am e object를 선택하여 2개의 editb ox 를 적당하게 포함하도록 위치시킨다. editb ox 가 fr am e b ox 에 가려서 보이 지 않을 것이다.1.10:0. 이때에는 fr am e b ox 를 선택하고. Uicon tr ol Obj ect의 GUI요소 사용 방법 그리고. 여기서.20]처럼.1:10. Strin g pr operty n am e을 m ou s e로 선택하고. 이들. 문자열을 나타내주는데 필요한 단일 인용부호 없이 . m ou se의 오른쪽 버튼을 click하면. fram e b ox 를 editb ox 보다 나중에 위치시키므로.2 1] String pro pe rtyna me 의 편집. editb ox 에 입력해 준.

2]와 같이 slider옆에 static t ex t를 위치 시켜주고. listb ox 에 item 들을 첨가시켜 주려면.2]와 같이 위치시켜준다. listb ox 를 [그림 1. . [그림 1. 각각의 static t ex t의 strin g color를 바꾸어 주기 위해서.23]과 같이 바꾸어 주면 된다. pr operty in spector w in dow 에 있는 for eg roun d color pr operty n m e의 pr operty v alu e를 적당히 바꾸어 주자. [그림 1. 이제. p opupm en u에서 사용될 it em 들은 listb ox 와 동일하므로. 같은 방법으로.20 - . [그림 1. property in spect or w in dow 에 있는 strin g pr operty n m e의 pr operty v alu e를 [그림 1.23]과 같이 IT EM 들을 입력 해 주면 된다. strin g w in dow 에서 문자열을 입력하는 방법은 일반 w in dow s의 n ot ep ad에 문자열을 입력하는 방법과 동일하다.22 ] Obje ct들의 laye r간 위치 설정 방법. 이제. 그리고.23]에 보여준.1. listb ox 에 item 들을 입력하는 방법과 동일하게 popupm enu 에 item 들을 첨가 시켜주자. [그림 1. [그림 1.23 ] lis tbox 에 ite m들을 첨가하는 방법.2]에 있는 popup m enu 를 위치시키고. Uicon trol Object의 GUI요소 사용 방법 [그림 1.

24 ] GUIDe mo .m 함수를 m atlab의 desk top에 있는 com m an d w in dow 에서 다음과 같이 실행해 보자. 나타나는 w in dow 의 크기가 마음에 안 들면. [그림 1. 정렬하고.25]와 같이 나타나면.3]에 있는 F ig ur e re sizer부분에 m ou s e를 놓고. 이제. [그림 1.2]와 같이 각각의 com pon ent들을 위치 시키고. .2]와 같이 위치시켜 주면. 여러분들은 지금까지 배운 방법으로. 초기 문자열들을 설정해 줄 수 있을 것이다.3]에 있는 F ig ur e A ctiv at or icon 을 click 하여. 모든. [그림 1. com pon en t들을 [그림 1.21 - . Uicon tr ol Obj ect의 GUI요소 사용 방법 이제.fig file 만일. [그림 1. [그림 1. > > GUID em o 이때. GUIDem o w in dow 를 미리 볼 때. 제대로 desig n 한 것이다. [그림 1.24]와 같이 될 것이다. 원하는 w in dow size로 dr ag 해 주고 저장해 주면 된다. 여러분이 만든 GUIDem o.1.

m 함수의 실행결과. 이번에는 peak s . [그림 1.25]에 있는 ax es object에 들어가 는 것이 아니라.m 함수에 의해서 만들어지는 모든 GUI fig ur e object의 h an dle은 H an dle V i s ib ilit y 가 o f f라는 것이다.25 ] GUIDe mo . > > p eak s 위와 같이 실행하면.26 ] pe a ks . peak s에 해당하는 그래프가 [그림 1.22 - .m 함수를 다음과 같이 실행해 보자.26]과 같이 나타날 것이다. 새로운 figu r e object에 [그림 1. 여러분이 주의할 것은 gu ide.m 함수의 실행 결과. .1. Uicon trol Object의 GUI요소 사용 방법 [그림 1. 여기서.

p eak s에 해당하는 그래프가 [그림 1. GUID em o.27]과 같이 Pr op erty In spector w in dow 가 나타날 것이다. pr operty n am e 중에서. 자연수로 할당하기 위해서는 [그림 1. 다시.m 함수를 실행하여.m 함수를 실행하고.h an dlev isibility 의 pr op erty v alu e가 o f f 로 되어 있는 것을 볼 수 있다.25]에 있는 GUIDem o. 여기서.1.m 함수를 실행하였을 때. fig ur e title도 u ntitled로 되어 있다.m 함수의 figu re object의 h an dle v alu e로 일반적인 fig ur e object의 h an dle v alu e처럼.27]의 m en ub ar pr operty n am e의 property v alu e를 f ig u re 로 바꾸어 주어야 하고.27]에 있는 In t e g e rH a n dle 의 pr operty v alu e를 o n 으로 해 주어야 한다.m 함수의 ax es object에 쏙 들어가 있는 것을 볼 수 있 을 것이다. [그림 1. 그리고.m 함수에 의해서 만들어지는 fig ur e obj ect의 h an dle v alu e는 자연수가 아니라. 또한.27 ] Fig ure Obje ct의 Pro pe rty Ins pe cto r 그리고. 그러므로. GUIDem o.m 함수를 실행하면.m 함수에 해당하는 그래프가 GUIDem o. peak s . 이제. 그러나. 사용자가 실수로 g uide.m 함수에 의해서 만들어진 GUI fig ur e object를 편집하지 못 하도록 하기 위해서이다.fig file을 불러오 고. 또는 object br ow s er에서 figu re object를 m ou se로 dou ble click하면. fig ur e title을 바꾸어 주기 . g uide . p eak s . [그림 1. m atlab이 난수적으로 소수를 할당 한 것을 조사할 수 있을 것이다. figu re object의 m enu b ar를 정상적으로 보여주기 위해서는 [그림 1. 이 fig ur e object의 h an dle v alu e는 1 이 아니라. 이것을 o n 으로 바꾸어 주자. Uicon tr ol Obj ect의 GUI요소 사용 방법 이것은. 저장한 뒤에.25]의 ax es object 에 쏙 들어가도록 하기 위해서는 다시 g uide.m 함수의 fig ur e obj ect에는 m en ub ar가 없고. [그림 1. 먼저. GUID em o. peak s . fig ur e object에 해당하는 부분을 m ou se로 dou ble click하거나. 소수로 주어지게 되어 있다.23 - .

28 ] Fig ure Obje ct의 p ro pe rtyva lue 를 수정한 결과. 다시. 또한. [그림 1. > > clos e all > > clear all > > GUID em o > > p eak s 위와 같이 명령하면. m enu b ar와 figu re title이 편집한 대로 바뀌어 있는 것을 볼 수 있을 것이다. GUIDem o. .m 함수의 ax es obj ect에 들어가 있고. 다음과 같이 명령하여 보자. [그림 1. 즉.24 - .28]과 같이 [그림 1. 그리고. Uicon trol Object의 GUI요소 사용 방법 위해서는 n am e pr operty n am e의 property v alu e에 원하는 strin g을 넣어 주면 된다.29]와 같이 peak s에 해당하는 그래프가. [그림 1.1.27]을 수정해 보자.

m 함수에 대한 기본적인 준비작업을 수행하였다. 직접. 여기서.m file과 *.m file이 만들어 진 것이다.1. GUIDem o.m 함수의 code 부분을 m atlab edit or를 사용하여 보여 줄 것이다. 이것은 g uide함수를 사용하여 GUI pr ogr am 을 만들 때 *. 동시에.25 - . 이제. [그림 1.31]과 같이 GUIDE A pplication Option s w in dow 가 나타날 것이다.fig file을 저장하면..fig file an d . 즉.m file" option 을 선택하였으므로. gu ide 함수로 만들어진 GU I pr og ram 의 *. m en u를 선택하 면. Uicon tr ol Obj ect의 GUI요소 사용 방법 [그림 1. [그림 1. .30]과 같이 g uide함수의 Lay ou t E ditor에 A pplication Option s . m atlab이 GUID em o. [그림 1..fig file을 동시 에 만들어 주도록 option 을 지정하여 주었기 때문이다.m 함수의 code를 수정해 가면서.m 함수를 사용하여 GUIDem o.29 ] 지금까지 여러분은 GU IDem o. g uide.fig file과 *.2]와 같이 수행하도록 해보 자. "Gen er at e . 그러나.

(d e f au lt ) (2) Pr oportion al : m atlab이 자동으로 GUI progr am 에 있는 여러 com pon ent s의 크기를 figu re object의 크기에 비례하게 조절해 준다.26 - . [그림 1.1. 정리하 면. 다음과 같다.31]을 보면. 그밖에도 [그림 1.3 1] GUIDE Ap p lic atio n Optio ns . Uicon trol Object의 GUI요소 사용 방법 [그림 1. (1) N on . 여러 가지 유용한 option 들이 있는 것을 볼 수 있는데.r esizable : g uide함수로 만들어진 figu r e object는 크기를 m ou s e로 조정할 수 없는 w in dow 가 된다. 1) R esize Beh av ior option : 이것은 g uide 함수로 만들어질 fig ur e object의 r esize pr op erty n am e에 대한 것이다.30 ] Ap plic a tio n Optio ns . .

1. Uicon tr ol Obj ect의 GUI요소 사용 방법

(3 ) U ser - sp ecified : 사용자가 figu r e w in dow 의 크기를 조절할 때, 사용자가 정의한 어
떤 방법으로 GU I com pon en t와 fig ur e object의 크기를 조절하도록 한다.
2) Com m an d - lin e acces sibility :
(1) Off : Com m an d lin e에서 GUI fig ur e에 명령을 할 수 없다. (de f a u lt )
그러므로, defau lt로 settin g 하고, GUI fig ur e를 만들면, p eak s에 해당하는 그래프가
GU I figu re에 있는 ax es object에 들어가지 않는 것이다.
(2) On : Com m an d lin e에서 GUI figu re에 명령을 할 수 없다. 즉, F ig ur e Object의
H an dleV isibility 를 On으로 한 것과 같다.
(3 ) U ser - sp ecified : 실질적으로 의미가 없는 option 이다.
3 ) Gen er at e .fig an d .m file : *.m , *. fig file을 모두 만들어 준다.
(1) Gen er at e callb ack fun ction pr ot oty p es :
g uide함수로부터 만들어진 *.m file에 각각의 com p on ent에 대한 callb ack fu n ction 의
pr ot oty pe을

첨가해준다.

생성되는

fun ction 의

callb ack

fu n ction

n am e은

해당

com pon en t의 t ag에 설정한 문자열에 _Callb ack을 첨가한 것이다.
즉, pu shb utton의 t ag pr operty n am e을 P Butt on 이라고 하였다면, 생성되는 *.m file에
첨가되는 callb a ck fu n ction 의 fun ction n am e은 PButt on _Callb ack으로 주어진다.
(2) A pplication allow s on ly on e in st an ce to run :
해당 GUI pr og r am 을 몇 개 만들 것인지를 결정해 준다.
즉,

A pplication

GU IDem o.m 함수를

allow s

only

실행하고,

on e

in stan ce
다시,

to

ru n

option을

GUIDem o.m 함수를

해지한

실행하면,

뒤에
2개의

GU IDem o.m w in dow 가 만들어진 것을 볼 수 있을 것이다.
그 밖의 option s는 [그림 1- 31]로부터 쉽게 알 수 있을 것이다.
이제, GU IDem o.m 함수의 code부분을 살펴보자.
여기서주의 할 것은, 독자가 GUI pr og r am m in g 방법을 쉽게 이해하기 위해서 GUIDem o.m
함수의 code를 직접 설명하는 것이 아니라, 새롭게 GU IDem o.m 함수와 같은 기능을 수행하
는 t est .m 함수를 만들어 나가면서 설명하는 방식으로 할 것이다.
그러므로, t est .m 함수를 만들 때까지 자리를 뜨지 말고 정신을 집중하여 이 책에서 설명한
대로 따라해 보기 바란다.
우선, [그림 1- 2]와 같이 GUID em o.m 함수를 design 하는 방법은 모두 배웠으므로, gu ide 함
수의 F ile/ N e w m enu 를 선택하여 새로운 con trolled st at e에 있는 fig ur e object를 만들고,
GU IDem o.fig file에서 E dit/ S e le c t A ll m en u를 선택하고, c trl +c 를 하고, 새로 만든 figu r e
object에 c t rl +v 를 하여 pa ste해준다.
그리고, GUIDem o.m 의 figu re object와 크기가 같도록 pr operty

In sp ect or를 사용하여

p osition의 값을 동일하게 한다. 물론, 2개의 figu r e obj ect에 U n it s 도 동일해야 한다.

- 27 -

1. Uicon trol Object의 GUI요소 사용 방법

그러면, [그림 1- 32]와 같이 GUIDem o.fig file과 동일한 모양이 될 것이다.
또한, F ig ur e Object의 H an dleV isibility 는 o n 으로 하고, In t e g e rH a n dle 도 역시, o n 으로 지
정하자.
이제, t est .fig file로 저장한다.
그러면, M atlab editor에 의해서 자동으로 t est .m 함수가 만들어지면서, 해당 code를 m atlab
editor로 보여 줄 것이다.

[그림 1- 32 ] te s t .fig file

이제, t est .m 함수의 내용을 살펴보자.
%%%%%%%%%%%%%%%%%%%%

te st .m

%%%%%%%%%%%%%%%%%%%%%

fu n ction v ararg ou t = t est (v ar ar gin )
% T E ST A pplication M - file for te st .fig
%

F IG = T E ST lau n ch test GUI.

%

T E ST (' callb ack _n am e ' , ...) in v ok e th e n am ed callb a ck .

% La st M odified by GUIDE v 2.0 17 - Ju l- 2001 19 :43 :44
▶ ①
if n ar gin == 0

% LA U N CH GUI

fig = open fig (m filen am e,'r eu se ' );

▶ ②

% U s e sy st em color s ch em e for fig ur e :
set (fig ,' Color ' ,g et (0,' defaultUicontr olBack gr oun dColor ' ));
% Gen er at e a stru ctur e of h an dle s to pa s s to callb ack s , an d st or e it .
h an dles = g uih an dles (fig );

▶ ③

g uidat a (fig , h an dles );

▶ ④

if n ar g out > 0
v ar ar g out {1} = fig ;

- 28 -

1. Uicon tr ol Obj ect의 GUI요소 사용 방법

en d
elseif isch ar (v ar ar gin {1}) % INV OKE NA M ED SUBF UN CT ION OR CA LLBA CK
try
[v ar ar g ou t {1:n ar g out }] = fev al(v ar ar gin {:}); % F EV A L s w it chy ard
cat ch
disp (la st err );
en d
en d
%%%%%%%%%%%%%%%%%%%%

te st .m

%%%%%%%%%%%%%%%%%%%%%

우선, t est .m 함수의 입력 매개변수로 여러분은 앞에서 배운 v ar ar gin이 사용되고 있고, 출
력 매개변수로 v ar ar g ou t이 사용되는 것을 볼 수 있다. 또한, cell dat a ty pe이 사용되고, try
와 cat ch가 사용되는 것을 볼 수 있다.
이들 항목들은 앞으로 계속해서 사용되므로 기억이 나지 않는 분들이 다시 해당 항목에 대
한 설명을 참고하기 바란다.
t est .m 함수의 첫 번째 내용은 com m an d w in dow 에서 t est .m 함수를 호출할 때, 입력 매개변
수가 하나도 없으면(즉, if n ar gin == 0), ②번 lin e부터 시작하라는 뜻이다.
② lin e에서 사용되는 open fig .m 함수의 전형적인 사용 방법은 다음과 같다.

전형적인 사용방법(Sy n tax ) : Op e n f i g .m
Op e n f ig .m : 저장되어 있는 fig ur e를 m atlab deskt op으로 불러오는 함수.
이 함수는 저장되어 있는 figu r e를 m atlab desktop으로 불러오고, 불러온 fig ur e의
h an dle을을 돌려준다. 그러나, 주어진 fig ur e h an dle은 감추어진다는 것에 주의하라.
(즉, H an dleVisibility = off)
open fig .m 함수는 2번째 입력 매개변수에 따라서 다음과 같은 동작을 수행한다.
(1) open fig ('filen am e.fig ' ,'n ew ' ) :
저장되어 있는 *.fig file을 open fig .m 함수를 호출 할 때마다 매번 불러온다. 여
기서, 입력 매개변수로 주어진 *.fig file이 m atlab 경로 중에 있다면, 정확한 경
로명을 기술할 필요가 없다. 그리고, fig 확장자는 사용하지 않아도 된다.
(2) open fig ('filen am e.fig ' ,'r eu s e ' ) :
저장되어 있는 *.fig file을 단 한번 불러온다.
(3 ) open fig ('filen am e.fig ' ) :
openfig ('filen am e.fig ' ,'n ew ' )과 같은 기능을 수행한다.
(4 ) fig ur e_h an dle = open fig (...) :
저장되어 있는 fig ur e의 h an dle을 돌려준다.

- 29 -

1. Uicon trol Object의 GUI요소 사용 방법

결국, ② lin e을 수행하면, 현재, GUI figu re의 h an dle을 얻을 수 있고, 반환된 h an dle은 fig
변수에 저장된다.
③ lin e에서는 gu ih an dle s .m 함수를 사용하여 현재 GUI fig ur e에 있는 모든 object s에 대한
h an dles를 구조체의 양식으로 얻을 수 있다.
즉, te st .m 함수의 ①번이 가리키는 곳에 g lo b al h a n dle s 라고 codin g 하고, 저장한 뒤에 다음
과 같이 실행해 보자.
> > t est
> > g lob al h an dles
> > h an dle s
h an dles =
fig ur e1: 1
pu shb utton 1: 123.0005
t ex t 14 : 122.0005
t ex t 13 : 121.0005
t ex t 12: 120.0005
t ex t 11: 119.0005
t og glebu tt on 1: 118.0005
t ex t 10: 117.0005
t ex t9 : 116.0005
edit 2: 115.0005
edit 1: 114.0005
t ex t8 : 113.0005
popupm enu 1: 112.0005
t ex t7 : 111.0005
listb ox 1: 110.0005
t ex t6 : 109.0005
ch eck b ox 3 : 108.0005
ch eck b ox 2: 107.0005
ch eck b ox 1: 106.0005
t ex t5 : 15.0009
r adiobutt on 3 : 14.0009
r adiobutt on 2: 13.0009
r adiobutt on 1: 12.0009
t ex t4 : 11.0009
t ex t3 : 10.0009
t ex t 2: 9.0009

- 30 -

(이어지는 내용 ☞ gu ih an dle s의 전형적인 사용 방법) . g uih an dles .0012 fr am e1: 105. 현재 활성화되어 있는 fig ur e object에 있는 모든 object들에 대한 h an dle값을 얻을 수 있다.31 - ..m 함수를 사용하면.0005 위와 같이.0009 fr am e2: 4.0009 slider 2: 6.1.0009 slider3 : 7.0005 ax es 1: 100.. 4 편 에 서 계 속 .0009 slider 1: 5. Uicon tr ol Obj ect의 GUI요소 사용 방법 t ex t 1: 8.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

②번 lin e앞에도 global M arkerE dg eColor이라고 선언한 뒤에. ev ent dat a .23]과 같이 listb ox 에 item을 첨가하였던 것을 기억해보자.m 함수의 맨 첫째 줄에 glob al M arkerE dgeColor이라고 선언하고. 이들 listbox에 첨가된 it em 들 각각은 문자열이지만. ▶ ② M ark erE dg eColor =g et (h . > > global M ark erE dg eColor > > M arkerE dg eColor M arkerE dgeColor = 'r ' 'g ' 'b ' 'c ' . GUIDem o( 'listbox 1_Callback ' .1.L sitM arkF ace.49 - . {. L sitM arkF ace_Callback함수의 첫 번째 입력 par am et er인 h 는 listbox 자신의 h andle을 의미 하므로. % -------------------------------------------------------------------function v ararg out = L sitM arkF ace_Callba ck (h . 이들 문자열들은 listbox 의 s t rin g pr opertyn am e에 c e ll dat a type으로 저장된다. listbox 에 있는 각각의 it em 에 접근하기 위해서는 cell의 in dex를 지정하는 데 사 용하는 중괄호(즉. > > t est listb ox 를 click해 본다.' string ' ). 다음과 같은 code를 첨가해 본다.guidata (g cbo)) ▶ ① ①번 line은 삭제하고. 다음과 같이 명령을 계속해 본다. v ar ar gin ) % Stub for Callback of the uicontr ol han dles . 즉.})를 다음과 같이 사용해야 한다. h andles . 그리고.gcbo. 그러므로. ②번 lin e으로부터 listb ox 의 item들을 모두 M arkerE dgeColor에 저장할 수 있다. m atlab desktop에 있는 com m and w indow 에 서 다음과 같이 실행해 보자. 주의 : M ark erE dg eColor에는 listbox 에 있는 모든 it em 의 문자열들이 cell dat a type으로 저 장되어 있다는 데 주의하자! t est . Uicontr ol Obj ect의 GUI요소 사용 방법 [그림 1.[].

다음과 같은 code를 callback함수에 추가해 보자.50 - . 2 . t est . . 사실.m 함수에 첨가하고. 우선. 각각의 listbox item을 click할 때마다 m arker의 face color 가 바뀌는 지 확인해 보자.' m ark erfacecolor ' . 우리는 popupm enu를 사용하여 plottin g되는 line에 첨가되는 m arker의 모서리(edg e ) color를 바꾸어 볼 것이다. 주의 : listb ox 와 popupm enu에 포함되어 있는 it em 들의 index 는 1 부터 시작한다는 데 주 의하자. checkb ox 와 r adiobutt on은 모양만 틀리지. 3 과 같은 방식으로 각각의 item에 자동으로 index 가 부여된다. popupm enu에 대한 callb ack함수의 pr ot ocol을 te st . set (han dles . 그러므로.1.'v alu e ' ).m 함수를 실행하고. listb ox 와 popupm enu도 모양만 틀리고 사용방법은 동일하다. 사용방법은 같다. Uicontrol Object의 GUI요소 사용 방법 'm ' 'y ' 'k ' 'w ' > > cla s s (M arkerE dg eColor ) an s = cell listb ox 에 있는 각각의 it em 들은 1 . 그리고. 이제.Line_h andle . 의 code를 첨가해 주면 listbox를 사용하여 m arkerfacecolor를 바꾸어 줄 수 있다. Index List =g et (h . 마찬가지로. popupm enu com ponent를 사용하는 방법을 알아보자.M arkerF aceColor {Index List }).m 함수에 부여한 glob al M arkerE dg eColor는 모두 지우고. 저장한다. t est . 이제.

버튼이 나온 모양을 갖는 형태의 button이다. m arkerfacecolor pr opertynam e 대신에 m arkeredg ecolor를 첨가한 것만 다른 것을 알 수 있 을 것이다. ax es object에 있는 line의 m arker edge color가 popupm enu에서 선택한 color로 바 뀌는 것을 알 수 있을 것이다. 이제. v ar ar gin ) % Stub for Callback of the uicontr ol han dles . 즉. 물론.M arkerE dgeColor {In dexP opup }). 단지.m 함수에 첨가해 주어야 한다. 이제. M ark erE dg eColor =g et (h . r elea sed st at e에서는 v alu e가 0 이 된다. . 현재 figur e object의 크기는 [232 269 739 409]인데. 그리고. 위와 같이 togglebutt on을 사용하기 위해서는 먼저 guide함수에 callback함수의 prot ocol을 t est . t ogglebutton을 click하면.m 함수에서는 t ogglebutton을 이용하여 F igur e Object의 크기를 조절하고 있다. popupm enu에서 적당한 m arker edg e color를 선택한다. han dles .51 - .40 ] To gg le b utto n의 State s .'v alu e ' ).40(a )]와 같이 버 튼이 눌려 진 모양을 가지며. figur e object의 크기가 [232 269 529 409]과 같이 폭(w idth )이 739에서 529로 작아지도록 만들 것이다. unit s는 pix els로 동일하다. 저장하고.m 함수를 실행해 보자. [그림 1. s et (handles . 그러면. m arker의 edg e color를 제어하기 위해서. In dexP opup =g et (h .40(a )]와 같이 t og glebutt on이 눌린 상태에는 v alu e 가 1 이고. t ogglebutton은 일반적인 pu shbutton과 달리. t ogglebutton을 제어하는 방법을 살펴보자. GUIDem o. 우선.1.m %%%%%%%%%%%%%%%%%%%%%%% function v ararg out = P opM arkE dg e_Callback (h . m arker type에서 Diam on d r adiobutton을 click하고. 다시 m ou se로 click하면.P opM arkE dg e.Lin e_han dle. Uicontr ol Obj ect의 GUI요소 사용 방법 %%%%%%%%%%%%%%%%%% t est .m %%%%%%%%%%%%%%%%%%%%%%% listb ox 에 첨가한 code와 비교해 볼 때. m ou s e로 click하면.' string ' ). %%%%%%%%%%%%%%%%%% t est . [그림 1. 다음과 같이 coding해 주면 될 것이다.'M arkerE dg eColor ' . ev entdat a . te st . [그림 1.

L e s s < < 문자열을 t ogglebutton에 첨가해 주면 된다.'pos ' .figur e1.1. 아직. t est . ③번 line과 같이 codin g하면 된다. figur e의 폭이 작아지고.' strin g ' . 그리고.' strin g ' .figur e1.m %%%%%%%%%%%%%%%%%%%%%%% function v ararg out = T GM L_Callback (h . % % % % % % % % % % % % % % % % % % t est . t og glebutt on이 눌린 경우에는 v alue가 리면. 그러므로. ▶ ③ Curr entF igur eP os (4)]) set (h . 그러나. ev ent data . 저장하고. m atlab의 GUI pr ogr am m in g 기 법을 모두 익혔다고 생각하면 안 된다.52 - . 만일. togglebutt on에 M ore > > 과 같은 문자 열을 첨가해 주면 된다.[Curr entF igur eP os (1) Curr entF igur eP os (2) 529 .m 함수를 사용하여 실험해 보자.'pos ' .'M or e> > ' ) ▶ ④ else set (h andles . 만일.. t ogglebutton이 눌 1 을 반환하여 참 (tru e )이 된다. 이때에는 figur e의 폭만 바꾸어 줄 것이므로. 독자 중에서 정확한 대답을 할 수 있다면.'v alue ' )는 0 을 반환할 것이므로. 그리고. 이 문제에 대한 대답은 독자 여러분들에게 맡기도록 하겠다.'Les s < < ' ) ▶ ⑦ end ..' v alu e ' ) ▶ ② set (h andles . 그 이유는 무엇일까? 만일. . ▶ ① if g et (h .figur e1.[Curr entF igur eP os (1) Curr entF igur eP os (2) 739 . 알아두어야 할 것은 지금까지의 내용을 한 번 읽어보고. 그러나. 지금까지 여러분은 m atlab에서 제공되는 모든 Uicontr ol compon ent들에 대해서 살펴보았다.'pos ' ).T GM L . ▶ ⑤ Curr entF igur eP os (4)]) % set (han dles . v ar ar gin ) % Stub for Callback of the uicontr ol han dles . 여러분들이 우 선.figur e1.'v alu e ' )는 1 이라고 하였으므로. m atlab의 w o rk s pa c e 에 대한 개념을 재대 로 이해하고 있는 것이다. ①번 line과 같이 현재 figur e object의 크기를 Curr entF igur eP os에 저장한다. GUIDem o. ⑤ 번 lin e과 같이 원래 figur e의 크기로 조정해 주면 된다. % -------------------------------------------------------------------CurrentF igureP os =g et (h andle s . t og glebutt on이 r elea s e 상태라면. Uicontrol Object의 GUI요소 사용 방법 %%%%%%%%%%%%%%%%%% t est .. 그리고.Curr entF igur eP os ) ▶ ⑥ set (h . get (h .m % % % % % % % % % % % % % % % % % % % % % % % 우선.m 함수에는 좀 더 다듬어야 하는 곳들이 많이 남아 있지만.' pos ' . g et (h . t og glebutt on이 눌려 지면.. togglebutt on이 r elea se되면. 다 시 원래의 figur e 크기로 돌아가도록 만들 것이다. t ogglebutton에 대한 coding이 끝났으면. ⑤번 lin e대신에 ⑥번 lin e과 같이 coding하면 figur e의 원래 크기로 되돌아가 지 못한다. h andle s .

m atlab w ork spa ce의 개념. [그림 1. 이번에 GUI pr ogram을 재대로 배우면. 이제. m ou s e pointer를 일정한 영역에 놓았을 때. tooltip이 나타나도록 만든 것이다. 그리고. Visu al C ++로 GUI pr ogr am m in g을 할 때 사용하는 handle의 개념과 m atlab의 GUI com ponent에서 사용하는 h andle의 개념은 같으므로. 즉. . 이것은 fr am e com pon ent를 [그림 1.1. uicontex tm enu에 대한 각각의 com pon ent들과 그에 따른 pr opertynam e/ pr opertyv alu e.4 1] To o ltip 기능.41]은 2개의 editbox를 감싸고 있는 fr am e com ponent에 m ou s e point er가 놓이 면. uim enu . Uicontr ol Obj ect의 GUI요소 사용 방법 왜냐하면.41]과 같은 T o o ltip의 기능을 사용하는 방법을 살펴보자. t ooltip 기능을 사용하는 방법은 의외로 매우 간단하다. 이후에 SIM ULIN K를 m atlab의 GUI와 연결시킬 때 많은 도움이 될 것이다. P roperty In spect or를 호출하여 t ooltip pr oprtyn am e에 도움말을 작성해 주면 된다. 계속해서 m atlab으로 GUI pr ogr am 을 작성하면서 codin g에 친숙해 지는 것만이 자신 있는 GUI pr ogr am 을 만들 수 있는 길이다. 관련 함수들의 유효적 절 한 사용법을 모두 익혀야 하기 때문이다. 완성도 있는 GUI pr ogr am m in g을 하기 위해서는 uicontr ol. [그림 1.41]과 같이 노란색의 네모 상자에 짧은 도움말을 잠시 표시해 주는 기능을 말한다.42]와 같이 guide함수의 lay out edit or상에서 선택하고. 결국. 또한. Visual C++를 배울 때도 많은 도움이 될 것이다. [그림 1. [그림 1. t ooltip이란.53 - . 그리고.

여기서. t est . Uicontrol Object의 GUI요소 사용 방법 [그림 1. A st erisk는 face (임의의 폐공간)가 없기 때문이다.42 ] to o ltip 기능을 사용하는 방법. listbox의 h andle v alue는 L sitM arkF ace이므로 다음과 같이 en able pr opertynam e을 사용할 수 있다.m 함수의 맨 앞에 앞에서와 같이 global handles를 설정하고. 왜냐하면. 3) Off : GUI compon ent가 비활성화 모양(gr ay ed out )을 가지며. 임의의 uicontr ol.' en able ' .m 함수를 실행해 보자. 결국. 작동은 하지 않는다.' off ' ) . 주의 할 것은 en able의 In activ e propertyv alue는 uicontrol com pon ent에 대해서만 유효하다. 이처럼. 예를 들면.54 - . 작동하지 않는다. 1) On : GUI com pon ent가 정상적으로 작동한다. t est . 만약. > > t est > > global h andle s > > set (han dles . 이때.(default ) 2) In activ e : GUI com pon ent가 정상적인 모습을 가지지만.LsitM arkF a ce. 그런데.1. uicontextm enu 각각의 it em 을 비활성화해 주기위해서는 e n a ble pr opertyn am e을 사용하여야 한다. enable pr opertynam e에는 다음과 같이 3가지 성질이 있다. uim enu . M arker F a ce Color를 u s er가 선택할 수 없도록 ListB ox 를 비활 성화 해 주어야 한다. M ark er type을 A st erisk로 설정한 경우에는 M arker F a ce Color가 아무런 의 미도 없게 된다. A st erisk를 선택하면.

즉.48 ] Ena b le Off 의 경우. Listb ox 가 [그림 1. m ou se로 click하여도 아무런 작동 을 하지 않는다.55 - .49 ] Ma rke r Fa c e Co lo r"의 ha nd le va lue 를 Ls it Ma rkFa c eTxt으로 설정 .49]와 같이 guide 함수를 사용하여 M arker F ace Color " 문자열의 han dle v alu e를 L sitM arkF aceT x t으로 설정하고. [그림 1.1. Listbox의 위에 있는 M arker F ace Color " 문자열도 listbox 와 함께 비활성화 되도록 설정해 보자. [그림 1. listbox 의 비활성화가 한눈에 확연히 보이지 않으므로.48]의 경우. [그림 1. [그림 1. 저장한다. Uicontr ol Obj ect의 GUI요소 사용 방법 위와 같이 명령하면.43]과 같이 비활성화 된 것을 볼 수 있다. [그림 1.48]과 같이 GUI com ponent가 비활성화되면.

t est . 다른 com pon ent를 click할 때. 계속해서 listbox와 문자열들이 모두 비활성화 된 상태로 남아 있는 것을 볼 수 있다. A st erisk r adiobutt on을 click하면. set (han dles . 이제. A st erisk r adiobutton을 click해 보면. 그렇다면.50]과 같이 M arker F ace Color " 문자열이 비활성화 된 것 을 볼 수 있다. Listbox 와 M arker F ace Color " 문자열이 모두 비 활성화 되도록 설정해 보자. 다시 다른 compon ent를 click하면. > > t est 그리고. 이제. 어떻게 해야.' enable ' . 그러기 위해서는 A sterisk의 callback함수인 AM arkR d_Callback에 다음과 같이 listbox 를 비 활성해 해 주는 r outine을 첨가해 주면 된다. Uicontrol Object의 GUI요소 사용 방법 다음과 같이 명령하면.' enable ' . 여러분은 m atlab의 guide함수를 사용한 GUI m echanism 을 모두 배웠다고 보아도 된다. listb ox 와 M ark er F ace Color " 문자열이 모두 비활성화 된 것을 볼 수 있을 것이다.L sitM arkF aceT x t . [그림 1. listbox와 해당 문자열을 다시 activ e state로 만들 수 있을 까? 이 문제를 쉽게 해결할 수 있다면. [그림 1.m 함수를 실행 해 보자. .L sitM arkF ace.50 ] e na ble o ff의 효과. 그러나.' off ' ) 이제.' off ' ) set (han dles .1.56 - .

임의의 다른 compon ent를 click하면.gcb o. 다시. % F EVAL s w it chy ard ▶ ① cat ch disp (la st err ). en d end %%%%%%%%%%%%%%%%% te st . 이때에는 t est ('임의의 Callback 함수 ' .ListBox Off ==1 ▶ ① h andle s .1. .' on ' ) s et (han dles .m 함수 가 다시 재귀 호출되며. [v ar ar g out {1:n ar gout }] = fev al(v ar ar gin {:}).guidat a (g cbo))과 같이 입력 매개변수가 사용된다.' enable ' . ▶ ② s et (han dles .m %%%%%%%%%%%%%%%%%%%%%% 그러므로. % F EVAL s w it chy ard cat ch disp (la st err ).' en able ' .m 함수는 다음과 같은 부분을 수행하게 된다.L sitM arkF aceT x t . Uicontr ol Obj ect의 GUI요소 사용 방법 A st erisk r adiobutton을 click한 뒤에.handles ).m %%%%%%%%%%%%%%%%%%%%%% elseif ischar (v ar ar gin {1}) % INVOKE NAM ED SUBF UN CT ION OR CALLBA CK try [v ar ar g out {1:n ar gout }] = fev al(v ar ar gin {:}).' on ' ) guidata (gcbo.57 - . %%%%%%%%%%%%%%%%% te st . te st .m %%%%%%%%%%%%%%%%%%%%%% ①번과 ②번 line에서 사용한 ListBox Off는 Listbox 의 현재 en able 상태를 나타내주는 f l a g 역활을 수행한다.[].L sitM arkF ace. te st .ListB ox Off =0. if han dles . end . 그러므로.m %%%%%%%%%%%%%%%%%%%%%% elseif ischar (v ar ar gin {1}) % INVOKE NAM ED SUBF UN CT ION OR CALLBA CK try han dles =guidata (gcbo). en d end %%%%%%%%%%%%%%%%% te st . %%%%%%%%%%%%%%%%% te st . ①번 line에 다음과 같이 code를 첨가해 주면 문제가 해결된다.

' v alu e ' . t est .h andle s ).A M arkRd. guidat a .' color ' ). 1 을 할당한다.' Color ' . set (h andles . 그리고.' en able ' .AM arkRd].을 다음과 같이 첨가 해주 면 된다.'m arker ' .y ). 마지막으로.m (AM arkRd_Callback Subfun ction ) ------------------ function v ararg out = AM arkR d_Callba ck (h . and st or e it .m 함수의 초기화 r outin e에 handles . A sterisk의 callback함수는 다음과 같이 ListBox Off을 h andle s의 field로 설정하고.Line_h andle =fev al( 'plot ' .' strin g ' ). x =str 2num (x _str ).Curr entLin eColor (2)). % ----------------- t est . . y =ev al (y_str ). handles = guihan dles (fig ).L sitM arkF aceT xt .Gslider . 현재 A st erisk r adiobutt on을 click하였다면.' off ' ) h andles .ListBox Off =1.Curr entLineColor (3)).' v alu e ' . han dles .ListB ox Off=0. Curr entLin eColor =g et (han dles . set (h andles . % ---------------------if n ar gin == 0 test .B slider .' strin g ' .58 - . v ar ar gin ) % Stub for Callback of the uicontr ol han dles .R slider .' en able ' .get (0.' defaultUicontr olBackgr oun dColor ' )). set (h andles . y_str =g et (handles .Check_hnds ) s et (handles .1.num 2str (Curr entLin eColor (2))).m 함수를 사용하여 현재 figur e obj ect의 dat a 영역에 저장한다. Ch eck_hn ds =[han dles .Curr entLineColor (1)). E x Choice (3. h andles .DM arkRd han dles . set (h andles .num 2str (Curr entLineColor (1))). Uicontrol Object의 GUI요소 사용 방법 즉.Lin e_han dle.RVal.YE dit .GV al.' strin g ' ).CM arkRd h andles . ev ent dat a .XE dit .' off ' ) s et (handles .Lin e_han dle. % U s e sy st em color s chem e for figur e : set (fig .'n ew ' ). ▶ ③ guidata (h .m (AM arkRd_Callback Subfun ction ) ------------------ 그리고. 앞에서 언급한 ①번과 ②번 line에서 사용하면 된다.' string ' . % Gen er at e a structur e of h andle s to pa s s to callback s .m (초기화 Routin e ) --------------------------- % LAUNCH GUI fig = openfig (m filenam e.'v alu e ' . x_str =get (han dles . set (h andles .L sitM arkF ace.' *' ) s et (handles .x . ▶ ④ % ----------------- t est .

다음과 같이 하면 된다. 만일.ListBox Off =0.T agcir cleM enu . m atlab이 제공하는 임의의 m enu it em 을 지우고 싶다면. Uicontr ol Obj ect의 GUI요소 사용 방법 set (h andles .51]과 같이 M enubar를 figur e로 잡은 뒤에. en d % ---------------------- test .T agA steriskM enu . han dles ).T agDiam on dM enu .5 1] Matla b 이 제공하는 기본 me nu .' acceler at or ' . 우선. [그림 1. if n ar gout > 0 v ar ar gout {1} = fig . uim enu를 사용하여 m enu를 첨가하려는 경우. [그림 1.BVal.' acceler at or ' .m (초기화 Routin e ) --------------------------- 지금까지 Uicontr ol Obj ect에 대해서 설명하였다.1.num 2str (Curr entLineColor (3))).' strin g ' . ▶ ⑤ han dles .' e ' ). 이번에는 uim e n u obj e c t 를 사용하여 te st progr am 에 m enu를 첨가하는 방법에 대해서 알 아보자.' d ' ). [그림 1. set (h andles . set (h andles .51]과 같이 M e n ub ar pr opertyn am e을 fi g ure 로 잡아 주면 된다. .'k ' ).' acceler at or ' .59 - . set (h andles . guidat a (fig . m atlab의 기본적으로 제공하는 m enu s 를 사용하려면.

1.60 - . 7 편에서 계속 .0018 중간 생략 figM enuIn s ertZLabel: 145.52]와 같다.0015 text 11: 218. (이어지는 내용 ☞ In sert m enu 중에서 XLabel m enu는 삭제하고. YLabel m enu의 label을 Y_Label로 바꾸어 보자.0013 BSlidValT x t : 246.0018 ▶ ① figM enuIn s ertYLabel: 144.0013 RSlidValT x t : 219. Uicontrol Object의 GUI요소 사용 방법 > > t est > > global h andle s > > handles han dles = figur e1: 1 pu shbutt on 1: 247..0018 figM enuView : 139.0015 중간 생략 ax e s 1: 199.0018 figM enuE dit : 127.0018 ▶ ② figM enuIn s ertXLabel: 143.0013 GSlidV alT xt : 245.) .m함수는 [그림 1.0018 ▶ ③ figM enu Cam er aT oolbar : 141.0017] figM enuCam er aPA x : 169.0020 figM enuT oolsBF DS : [179.0018 figM enuIn s ert : 142.0018 중간 생략 Line_h andle : 248..0005 ListBox Off : 0 m atlab이 기본적으로 제공하는 m enubar가 첨가된 test .0017 178.0015 figM enuT ools : 154.

YLabel m enu의 label을 Y_Label로 바꾸어 보자. .53]과 같은 m enu s 기능을 t est .1..52]의 In s ert m enu 중에서 XLabel m enu는 삭제하고. 주의할 것은 &Y_Label과 같이 Y앞에 &을 붙이면. XLabel m enu를 삭제하기 위해서는 GUI com pon ent의 모습의 유・무를 결정하는 v i s ible propertynam e을 사용하면 된다.61 - . m enu의 경우에는 해당 handle v alu e 가 주어지지 않았으므로 contr ol할 수 없다.m 함수에 첨가해 보자. [그림 1.' off ' ) 이제. YLabel m enu가 Y_Label m enu로 label nam e이 바뀐 것을 알 수 있을 것이다. 이번에는 다음과 같이 명령하여 보자.. [그림 1.'visible ' . &의 오른쪽에 있는 문자에는 밑줄 이 그어진다. 그러나. F ile m enu에 있는 Pr efer en ces . P rint S etup . 자 ! 이제. 여기서.. > > set (handles.52 ] 기본 me nuba r를 갖는 Fig ure Obje c t . XLabel menu가 있던 위치를 살펴 보면 XLabel m enu가 없어 진 것을 알 수 있을 것이 다..'label ' .'&Y_Label ' ) 위와 같이 명령하면. 다음과 같이 명령하여 보자. 우선. 즉.figMenuInsertXLabel. > > set (handles..figMenuInsertYLabel. [그림 1. Uicontr ol Obj ect의 GUI요소 사용 방법 이제.

ν)을 설정하는 방법. [그림 1.53 ] 첨가할 me nus . ▶ m enu it든에 대한 배타적 선택 방법.54 ] Me nu Ed ito r Window . 앞으로 배울 내용들을 정리하면 다음과 같다.3]에서 M enu E dit or icon을 click해 주어야 한다. 5) 기타. 4) 가속키(A cceler at or )를 사용하는 방법.54]와 같이 M enu E dit or W indow 가 나타난다.53]으로부터. 그러면. m enu s를 새롭게 만들어 주기 위해서는 [그림 1. m enu를 설정하는 방법부터 살펴보자. [그림 1. 2) 다단계 m enu를 만드는 방법 3) m enu item 의 옆에 c h e c k s ig n (즉. ▶ m enu it em 의 분리해 주는 s e pa rat or 우선.62 - . [그림 1. 1) m enu를 설정하는 방법. .1. Uicontrol Object의 GUI요소 사용 방법 [그림 1.

그러면. .1.55]에서 설정한 Option s m enu는 F igur e Object에 나타나는 최상위 m enu이다. [그림 1. In sert . [그림 1. F igure object에 있는 F ile. Uicontr ol Obj ect의 GUI요소 사용 방법 이제. View . [그림 1..55 ] 첫 번째 me nu 설정방법.55]와 같이 Pr operties gr oup box에 새롭게 만들 m enu에 대한 설정 it em s 가 나타난다. 즉.54]와 같이 N ew M enu icon을 click해 준다. [그림 1. E dit .과 동등한 계층의 m enu가 된다..63 - . .

다시 한번 N ew M enu It em icon을 click하여 [그림 1. Option s m enu를 m ou s e로 click하여 선택하고. 이제.64 - .'y grid ' .1.56]과 같이 SubM enu를 만들어 보자. m ou s e로 서브 m enu를 만 들고자 하는 m enu를 선택하고.'x grid ' . 결국. 이제.m 의 me nus 구성도. Option s m enu의 서브 m enu를 만들기 위해서는 우선. Option s m enu에 서브 m enu로 Grid Style m enu를 만들어 보자. Diam ond와 같이 d밑에 밑줄을 그은 것을 의미한다.' on ' )을 지정한다. Uicontrol Object의 GUI요소 사용 방법 그러므로. 임의의 m enu에 대한 서브 m enu를 만들기 위해서는 우선.57]과 같이 label에 Grid On을 지정하고.56 ] te s t . New M enu Item icon을 click하면 선택한 m enu의 서브 m enu를 만들어 나간다. . Callback에 grid를 on하도록 set (g ca . Option s m enu에 [그림 1. Label에 Grid Style이라고 지정한다.' on ' . 우선.56]에서 Diam on &d는 앞에서도 설명하였듯이. 그리고.55]에 보여 준 N e w M e n u It e m icon을 click한다. [그림 1. [그림 1. [그림 1.

' off ' ) 3) M enub ar N on e의 Callb ack 함수 : s et (g cf.' x grid ' .'F igur e ' ) 이제. 같은 방식으로.m 함수를 사용해야 한다. 각각의 Label nam e에 따른 Callba ck 함수는 다음과 같다. F igur e M enu에 대한 서브 m enu도 만들어 보자. .'m enub ar ' .65 - .'y grid ' .' on ' ) 2) Grid Off의 Callback 함수 : set (gca . 1) Grid On의 Callba ck 함수 : s et (gca . te st .m 함수를 실행해 보자. Uicontr ol Obj ect의 GUI요소 사용 방법 [그림 1. Uim enu object에 m enu를 배타적으로 선택하려는 경웅.'m enubar ' .'y grid ' .'x grid ' . Grid Off 서브 m enu를 만들고. 이번에는 Grid On/ Off에 대해서 Ch e c k S ig n (즉.57 ] Me nu 에 Grid On 지정.1.' on ' . 제대로 동작하는 것을 알 수 있을 것이다.' off ' . ν)을 넣는 방법을 알아보자. 저장하고. Check Sign을 넣기 위해서는 uicontr ol에 해당하는 Ex Choice_m enu .'none ' ) 4) M enub ar F igur e의 Callback 함수 : set (g cf.

ev entdat a .' checked ' .m ----------------------------- function Ex Choice_m enu (st at e. han dles . ν )을 넣어 주기 위해서는 각각의 Grid On/ Off m enu를 m ou se로 click하면 수행되어야 하는 callback함수가 Ex Choice_m enu . v ar ar gin ) .' checked ' . 일반적으로.1.m 이 함수는 Uim enu Object에서 배타적 선택이 % 필요한 경우에 서브 함수로 사용하면 됩니다.21 By Lim Jong Su % % global m enu_it em _hn ds it em _m ax =length (m enu_it em _hn ds ).' checked ' ) .1. 즉.' off ' ).m 함수에서 사용되는 함수의 pr ot otype을 지정한다. if str cm p (g et (m enu_it em _hn ds (st at e ).' on ' ). end % ------------------------ Ex Choice_m enu .m 함수와 같다.guidat a (g cbo)) 2) t est . gcbo. else set (m enu_it em _hnds (st at e ).m 함수 안에 해당 callback 함수의 pr ot otype을 m atlab이 자동으로 만들어 주지만. (stat e +1):it em _m ax ]). % % 1999. %다음 줄에 있는 명령어의 위치를 Ex Choice. uicontr ol com ponent에 대해서는 t est . fun ction 임의의 callback함수 이름(h . 또한.m함수도 포함해야 한다. 즉.m을 포함하여야 한다.1). % ------------------------ Ex Choice_m enu . uim enu와 uicontextm enu에 대한 callba ck 함수가 필요한 경우 다음과 같은 순서 로 사용자가 직접 만들어 주면 된다. 그러므로.[]. uim enu와 uicontex tm enu에 대해서는 만들 어 주지 않는다.' on ' ) % str cm p.m 함수를 사용하고 있다는 데 주의 ! set (m enu_it em _hnds (st at e ).m 을 사용하여 배타적으로 Grid ----------------------------- On/ Off에 대해서 Ch e c k S i g n (즉. t est ('임의의 callback 함수 이름 .m E x Choice_m enu .m함수와 비교 ! set (m enu_it em _hnds ([1:(st at e . Grid On/ Off를 수행해 주는 s et . 1) Callba ck 함수에 guide.' off ' ).66 - .' checked ' . Uicontrol Object의 GUI요소 사용 방법 사용방법은 uicontr ol에서 사용한 Ex Choice . m enu_it em _hnds ) % %Ex Ch oice_m enu .m 함수에 임의의 callback 함수를 지정한다.

T ag n am e과 handle n am e은 같으므로. ▶ ② % ------------------- t est . t ag이름과 han dle 의 이름. v ar ar gin ) % Stub for Callback of the uim enu han dles . han dles .T ag GridOn .'y grid ' . t est . ▶ ① E x Choice_m enu (1 .' on ' .' x grid ' . m enu_it em _hnds ). [그림 1.' on ' ) m enu_item_hnds =[handles .58 ] uime nu의 c a llba c k 지정방법. 주의할 것은 앞에서도 이미 언급하였듯이.67 - . % ------------------function t est . 물론.guidata (gcbo)) 이라고 지정한다.m (T agGridOn_Callback ) ------------------------- v ar ar g out = T ag GridOn_Callb ack (h . 가능하면.T agGridOff].'y grid ' .58]과 같이 T a g nam e과 같게 잡았다.m 함수에 다음과 같이 서브함수를 새롭게 coding한다.' on ' . s et (set (gca .' on ' )을 지우고. 이제. g cbo.58]과 같이 t est ('T agGridOn . 그리고 callback함수의 이름은 동일하게 잡는 것이 좋다. Grid On에 대한 Callba ck 함수를 지정하기 위해서. ev entdat a . 여기서.T ag GridOn h andles .m (T agGridOn_Callback ) ------------------------- .'x grid ' . [그림 1. 이미 앞에서 지정한 s et (g ca .1. 반드시 위와 같은 규칙을 따르지 않아도 작동은 하지만. Uicontr ol Obj ect의 GUI요소 사용 방법 우선.[]. callback함수의 이름은 [그림 1.

callback 함수를 set (g ca . 3개의 r adiobutt on s가 수행하므로. 그러나. 가능하면.T ag GridOn h andles . Uicontrol Object의 GUI요소 사용 방법 ①번과 ②번 lin e을 주석 처리하고. 그러기 위해서는 te st .m 함수를 실행하고. 그리고 Callback함수들은 [표 1. Grid On m enu를 m ou s e로 click해 보기 바란다. 표시가 되지 않고 있다. ①번에서 T ag GridOff는 Grid Off에서 사용하는 T ag nam e이다. 새롭게 만들 3개의 m enu s는 각각의 r adiobutt on과 연결시켜 주기만 하면 된다.4]와 같다.T ag GridOn . s et (handles . t est . m enu item이 보다 진보적인 기능을 수행하도록 해 보자.' on ' . v ar ar gin ) % Stub for Callback of the uim enu han dles . t est . ' ch ecked ' .m (T agGridOff_Callback ) ------------------------- v ar ar g out = T ag GridOff_Callba ck (h .'y grid ' .'x grid ' .' on ' ). 이 기능들은 이미.56]을 참고하여 만들어 보자.m 함수의 초기화 r outin e에 다음과 같이 codin g하면 된다. m enu_it em _hnds ).m 함수가 처음 실행 될 때.68 - .m 함수가 실행될 때. 각각에 대한 Lab el 이름과 T ag 이름.'y grid ' . ch eck sign이 처음 t est . % ------------------- t est . [그림 1. .56]과 같이 이번에 만들 m enu는 m arker의 type을 설정해 주는 기능을 수행한다. Grid Off m enu에 ch eck sign이 있도록 설정해 보자. 우선.58]과 같이 callback함수를 지정하고. 그러므로. t est . 같은 방법으로 M enubar None과 M enubar F igur e m enu s도 배타적으로 check sign이 할당 되도록 해 보기 바란다. % ------------------function t est .' off ' ) m enu_item_hnds =[handles .' on ' )으로 놓은 것과 동일하게 동작할 것이다.' off ' . 저장한 뒤에.T agGridOff].59]와 같이 3개의 m enu s를 [그림 1.T ag GridOff. 그러면. 이제. s et (set (gca . ▶ ③ E x Choice_m enu (2 . 이제. 그런데.m (T agGridOff_Callback ) ------------------------- ②번에는 1 을 ③번에는 2 를 할당한데 주의하자. T a gGrid Off에 대해서도 [그림 1. ②번 lin e에 의해서 Grid On/ Off가 배타적으로 ch eck sign이 할당되게 된다. ev ent dat a .m 함수에 다음과 같이 T agGridOff 서브 함수를 첨가 해 주자. [그림 1. 그리고.' x grid ' . h andles .1.

(이어지는 내용 ☞ DM arkRd_Callb ack함수) .69 - .[].[]. 모두 각각에 대응하는 Ra diobutton들의 callback함수를 부르고 있다.[]. Ca llba c k 함수의 이름. Diam ond m enu를 click하면.guidata (g cbo)) [표 1. Ta g 이름.guidat a (gcb o)) A st eris&k AM arkRdM enu t est ( 'AM arkRd_Callback ' . 즉.4 ] La be l 이름. 수행되는 DM arkRd_Callback함수가 호출되어 실행된다.1.g cbo. Uicontr ol Obj ect의 GUI요소 사용 방법 Label 이름 T ag 이름 Callback 함수 Diam on&d DM arkRdM enu t est ( 'DM arkRd_Callback ' . Diam on d r adiobuut on을 click하였을 때. [그림 1.guidata (g cbo)) Cir cl&e CM arkRdM enu t est ( ' CM arkRd_Callback ' .gcbo. 3개의 m enu에 대한 callb ack함수들을 보면.59 ] Uime nu를 사용하여 Ma rke r Type 설정...gcbo. 8 편에서 계속 .

70 - . 그러면. . DM arkR d_Callb a ck함수는 다음과 같이 바뀐다. 앞에서 배운 것과 같이 3개의 m enu s에 대한 배타적 ch eck sig n을 부여하기 위해서 E x Ch oice_m enu fu n ction을 추가한다.1. Uicon trol Object의 GUI요소 사용 방법 이제.

CM ark Rd h an dles .'T ag ' ). 그리고. ▶ ④ Ch eck_hn ds =[h an dles . 여기서 주의할 것은 R adiob utton과 ch eckb ox . m enu _it em _h n d s ). 대부분. E x Ch oice (1. m en u_item _h n d s =[h an dles .Lin e_h an dle. 실행하면. 이미. tog g leb utton 모두 m ou se로 click하 면.DM arkR d를 사용하여 v alu e 를 1 로 settin g하고 있다.. 해당 m en u에 대한 가 속 키 (acceler at or )를 즐겨 사용하게 된다. ③번 lin e과 ④번 lin e은 앞에서 이미 언급하였듯이. 같은 방식으로. M ark er T y pe m en u의 서브 m en u s와 3개의 r adiobu tt on 이 재대로 연결되어 작동하는 것을 볼 수 있을 것이다. Diam on d r adiobutt on 을 m ou s e로 click한 것과 같은 효과를 주기 위해서 ②번 lin e과 같이 Diam on d r adiobu tt on의 h an dle v alu e인 h an dle. Uicon tr ol Obj ect의 GUI요소 사용 방법 % ---------------------- test .DM ark Rd . v ar ar gin ) % Stu b for Callb ack of th e u icontr ol h an dles .CM arkRdM en u . v a lu e 가 0 으로 settin g된다. 해당 v a lu e 가 1 로 s ettin g 된다는 것이다. m ou se로 click하지 않았으면.DM arkRd h an dles . .' diam on d ' ) % ---------------------- test . GU I com pon en t를 m ou s e로 click하기 보다. Cir cle r adiobu tt on 과 A st erisk r adiobu tt on의 Callb ack함수에도 codin g 한 뒤 에 저장하고. 이미 예약되어 있는 가속키 값들은 m atlab이 F igu r e Obj ect에 기본적으로 제공해 주는 m en u를 살펴보면 나타난다. m atlab에서 가속키를 사용하는 방법은 대단히 간단하다. ▶ ③ E x Ch oice_m enu (1.71 - . 예약되어 있는 가속키 값이 있으므로. 3개의 m en u를 배타적으로 ch eck sign 을 부여하기 위해서 첨가한 것이다.m (DM arkRd_Callb ack ) ----------------------- ①번 lin e에서는 현재. 그러나. 그리고.1) en d .DM arkRd .Ch eck _h n d s ) s et (h an dles .. 사용하는 프로그램에 익숙해지면.1. ev ent dat a .DM arkR dM en u h an dle s . ▶ ① if str cm p (g et (g cb o.m (DM arkRd_Callb ack ) ----------------------- fu n ction v ararg ou t = DM arkR d_Callb a ck (h .A M ark RdM enu ]. 이들 값들은 피해 주어야 한다. m ou se로 click한 m enu 의 t ag n am e이 DM arkR dM enu 이라면.'DM arkR dM enu ' ) ▶ ② set (h an dles . 만일. h an dles .A M ark Rd]. h an dles .'m ark er ' . m ou se로 click한 m enu 의 T ag n am e이 DM arkRdM enu 인지를 비교하 고 있다.' v alu e ' .

1.m 함수가 처음 실행될 때.72 - . . C . 초기화 routin e에 다음과 같이 설정해 주면 된다. W . 이들 가속키 값들은 test . A 를 가속키 값으로 이미 사용하고 있는 것을 볼 수 있을 것이다. O . 가속키 값은 서브 m enu가 없는 m enu item에 대해서만 사용할 수 있다. [그림 1. 이제. 그리고. 그러므로.60]과 같이 F ile m enu 에서 N . setting되어야 한다.60 ] File me nu 즉.6 1] 제작할 가속키 값들. P를 가속키 값으로 이미 사용하고 있는 것을 볼 수 있다. Uicon trol Object의 GUI요소 사용 방법 [그림 1. S . V . 이들 문자를 제외한 나머지 문자를 가속키 값으로 사용 할 수 있다. 우리가 만들 가속키는 [그림 1. 그러므로. Edit m enu에서는 X . [그림 1.61]과 같이 만들 것이다. 그리고.

% U s e sy st em color s ch em e for fig ur e : set (fig .'k ' ).' defaultUicontr olBack gr oun dColor ' )). ▶ ① set (h an dles . ' ch eck ed ' .1.73 - .' en able ' .T ag GridOff.' d ' ). set (h an dles .' on ' ) gu idat a (g cb o. if h an dles .0 19 . gu idat a (fig . .' e ' ). set (h an dle s . % La st M odified by GUIDE v 2. en d elseif isch ar (v ar ar gin {1}) % INV OKE NA M ED SUBF UN CT ION OR CA LLBA CK try h an dles =gu idat a (g cb o ).m 초기화 Routin e ---------------------------- fu n ction v ararg ou t = t est (v ar ar gin ) % T E ST A pplication M .' acceler at or ' .ListBox Off =0.ListB ox Off ==1 h an dles .A M ark RdM enu .fig % F IG = T E ST lau n ch test GUI.) in v ok e th e n am ed callb a ck .L sitM ark F aceT x t . % Gen er at e a stru ctur e of h an dle s to pa s s to callb ack s . ' ch eck ed ' .T agM en ub arF ig ur e.L sitM ark F ace.' on ' ).. an d st or e it .' en able ' .' on ' ). h an dles = g uih an dles (fig ). % T E ST (' callb ack _n am e ' .CM arkR dM en u . Uicon tr ol Obj ect의 GUI요소 사용 방법 % ---------------------- test . h an dles ).' acceler at or ' . 중간 생략 set (h an dles .'r eu se ' ).file for te st .Ju l.2001 23 :40:02 if n ar gin == 0 % LA U N CH GUI fig = open fig (m filen am e. ▶ ② set (h an dles .ListBox Off =0.' a cceler ator ' . set (h an dles ..' Color ' . . if n ar g out > 0 v ar ar g out {1} = fig .h an dles ).DM ark RdM enu . ▶ ③ h an dles .g et (0.' on ' ) set (h an dle s .

위와 같이 codin g 한 뒤에 가속키 값이 제대로 실행되는 지 확인해 보기 바란다. [그림 1.m 초기화 Routin e ---------------------------- ①. 가속키를 사용하는 것이 간단한 것이 아니라.74 - . ③번 lin e으로부터 알 수 있듯이. % F EV A L s w it chy ard cat ch disp (la st err ).63]과 같이 m enu edit or에서 S e p ara t o r a b o v e th i s it e m 을 click하면. . 즉. Uicon trol Object의 GUI요소 사용 방법 en d . [v ar ar g ou t {1:n ar g out }] = fev al(v ar ar gin {:}). ②.62]와 같이 s epar at or가 만들어진다.62]와 같이 S epar at or를 사용하기 위해서는 [그림 1. 가속키는 u im en u object의 a c c e l e rat o r pr op erty n am e을 사용하면 된다. Visu al C ++를 사용하여 가 속키를 만드는 것도 r es ou rce w in dow 에서 m atlab과 비슷한 방법으로 설정만 해 주면 된다. 현재 설정하는 m en u의 위에 [그림 1. 그런데.62 ] me nu s e pa rato r. 가속키를 부여하고자 원하는 uim enu object의 a cceler ator pr operty n am e에 가속키 값을 pr operty v alu e로 부여해 주면 된다. [그림 1.62]와 같이 여러 개의 m enu s를 나타내는 경우에는 각각의 m en u의 특성에 맞게 분 리해 주는 것이 좋다. m atlab 만.1. en d en d % ---------------------- test . 의외로 가속키를 사용하는 방법이 매우 간단하다는 것을 알 수 있다. [그림 1.

m ark er ty pe과 lin e sty le을 조정해 주는 역할을 수행 한다. 그러나. 나타나는 p opup m en u를 의미한다. W in dow s sy st em 과 U NIX sy st em 에서만 m ou se의 오른쪽 버튼에 의해서 uicon t ex tm en u가 나타나고. [그림 1. 어쨌든. Uicon tr ol Obj ect의 GUI요소 사용 방법 [그림 1. 이번에 학습할 u icont ex tm enu 는 [그림 1. . U icont ex tm en u를 만드는 방법을 살펴보도록 하자. U icont ex tm en u는 임의의 Obj ect에서 m ou se의 오 른 쪽 버튼을 click하였을 때.64]와 같이 m enu s로 구성되며. uim enu 에서 사용한 ch eck sig n과 s epar at or도 동일하게 사용된다. u icon tex tm enu 는 그 이름과 같이 uim enu 의 확장판이라고 보면 된다.64]와 같이 A x es obj ect에서 m ou se의 오 른쪽 버튼을 click 하였을 때 나타나며. M acint osh sy stem 에서는 uicon tex tm enu 라고 부르지 않고.63 ] Matla b Me nu s e pa rato r의 사용 방법. e x t e n d e d c lic k 이라고 부 른다. 그러므로.1. 보통. M acin t osh sy st em 에서는 Ct rl k ey 를 누른 상태 에서 m ou s e의 오른쪽 버튼을 click 해 주어야 나타난다.75 - . 이제.

그리고.66 ] Uic o nte xtme nu의 me nu설정 방법.66]과 같이 각각의 m en u it em 들을 Pr op erties gr oup b ox 안에서 uim enu 에 서 m enu 를 설정하던 방법대로 설정해 나간다. 어쨌든. M en u E dit or w in dow 에서 [그림 1. 우선. m en u s를 설정하던 방법대로 각각의 m enu 를 구성해 나간다.65]와 같이 con tex t M enu s t ab을 click한다. [그림 1. 그리고.1. N ew Con tex t M enu icon을 click한다. u icont ex tm en u를 사용하기 위해서는 우선. . Uicon trol Object의 GUI요소 사용 방법 [그림 1.64 ] uic o ntextme nu의 사용 방법.76 - . [그림 1.

g cb o.1.5 ] Uic o ntextme nu 구성표.g uidat a (g cb o)) on off [표 1.g cb o.gu idat a (g cb o )) on Dott ed Lin e T ag Dt Con M enu t est ( 'DtLin eCh k_Callb ack ' .[]. T ag Cir Con M en u t est ( ' CM arkRd_Callb ack ' . 각각의 m en u에 대한 구성은 [표 1. [그림 1.g cb o. T ag Defau ltM enu t est ( 'T ag Play Butt on _Callb ack ' .[]. .67]은 [그림 1.g uidat a (g cb o)) off A st eris &k .g uidata (g cb o)) off Da sh ed Lin e T ag DCon M en u t est ( 'DhLin eChk _Callb ack ' . Label : T ag : Callb a c k : Diam on &d T ag DiaCon M enu t est ( 'DM arkRd_Callb ack ' .[].g cb o.[].g cb o. [표 1.[].g uidata (g cb o)) off Da sh . Uicon tr ol Obj ect의 GUI요소 사용 방법 [그림 1.m 함수의 uic o ntextme nu 설정.g cb o.g uidata (g cb o)) off Cir cl&e .5]에서 o n/ o f f는 S eparator ab ov e this item 의 ch eck db・무를 나타낸다.[]. T ag A st Con M en u t est ( 'A M arkRd_Callb ack ' .gu idat a (g cb o )) Default .[].64]에서 보여준 u icon tex tm enu 의 기능을 수행하도록 구성해 본 것이 다.5]와 같다.67 ] te s t .D ot Lin e T ag DDConM en u t est ( 'DDLin eChk_Callb a ck ' .77 - .g cb o.

Uicon trol Object의 GUI요소 사용 방법 이제.m 함수를 사용하여 배타적으로 선택되도록 만들어 보자. ax es object에 uicon tex tm enu 를 연결하기 위해서는 우선.1. 결국.68]과 같이 Lin eT y pes를 선택하고. 그리고. . uicon t ex tm en u를 구성하는 각각의 m enu 가 배타적으로 선택되지 않는 것을 알 수 있다.67]과 같이 u icon tex tm enu 를 구성하였으면.5]와 같이 [그림 1. ax es object에서 m ou se의 오른쪽 버튼을 click하여 uicon t ex tm en u가 나타나는 지 확인해 보 기 바란다. 그러나. [그림 1.68]과 같이 활성화한다. 사용할 uicont ex tm en u의 준비는 모두 한 셈이다. [그림 1.68] 과 같이 임의의 그래픽 object의 uicon t ex tm en u property n am e에 등록되므로. [그림 1. 그리고. [표 1. 그러므로.m 함수를 실행해 보자. [그림 1. [그림 1. 쉽게 u icon tex tm enu 를 임의의 그래픽 object에 연결할 수 있다.68 ] Uic o ntextme nu를 GUI c o mpo ne nt 에 연결하는 방법. 대상 GUI com pon en t를 선택하여야 한다.67]의 u icont ex tm en u를 ax e s ob j e c t 에 연결할 계획이다. uicont ex tm en u가 나타나게 할지.64]와 같이 [그림 1. 어느 GUI com pon en t에서 m ou s e 의 오른쪽 버튼을 click하였을 때.65]의 UIcont ex tm en u w in dow 에서 만든 모든 uicon t ex tm en u s는 [그림 1. 저장한 뒤에 t est .68]과 같이 UICon tex tM en u pr operty n am e 옆에 있는 icon 을 click하여 나 타나는 p opu pm en u에서 방금 만든 Lin eT y pe s를 선택한다. 이제. ax es object의 Pr op erty In sp ect or 를 gu ide함수에서 [그림 1.67]을 구성하였으면. 이 예제에서는 [그림 1.78 - . U im en u에서 사용한 E x Ch oice_m enu .

Lin e_h an dle.1.m 함수를 사용하여 plottin g해 주는 기능을 수행한다... 현재 m ou se로 click한 GU I com pon ent의 T ag n am e이 DM arkRdM en u이거나.... T ag Dia ConM enu 을 m ou se로 click하면.. ①번과 ②번 lin e은 uicon tex tm enu 를 배타적으로 선택하기 위한 문장으로 uim enu 에서 사용 한 방법과 동일하다.T a gDefau ltM en u ]...T ag Cir ConM enu .. DM arkR dM enu 또는.. m enu _it em _h n d s ). E x Ch oice (1.m 함수를 처음 실행하 였을 때의 lin e ty pe으로 바꾸어 주는 함수이다... if (str cm p (g et (g cb o.. 그리고...' v alu e ' .. ConM enu _it em _h n d s ).A M ark Rd]....t est . v ar ar gin ) % Stu b for Callb ack of th e u icontr ol h an dles .t est .. 이 함수는 Play 버튼과 연결된다.DM arkRd .. P lay 버튼은 x ..CM arkRdM en u h an dles .5]에서 만든 d e f au lt m en u의 기능이 무엇인지 알아 볼 필요가 있다.m (DM arkR d_Callb a ck ) ...' diam on d ' ) % . ▶ ② m en u_item _h n d s =[h an dles . [표 1... ConM en u_item _h n d s =[h an dles . ▶ ① E x Ch oice_m enu (1.. CM arkRd_Callb ack과 A M arkR d_Callb ack를 codin g해 주면 된다...T ag DiaCon M enu h an dles ...'T a gDiaCon M enu ' )을 더 추가 한 이유는 앞 에서 배운 uim enu 에서 if 문을 첨가한 이유와 잘 연결해서 생각해 보면 이해가 되리라고 생 각한다.DM arkR d의 pr operty v alu e를 1 로 settin g 해 준다....... 어쨌든. defau lt m en u는 lin e ty p es를 사용자가 임의로 설정한 뒤에.T agA stConM en u h an dle s .. h an dles . v alu e는 1 인 상태)를 갖게 해 준다..m (DM arkR d_Callb a ck ) ------------------------- 위의 code에서 if 문에 str cm p (g et (g cb o. 다시. T agDiaConM en u인 경우에는 h an dle s .. Ch eck_hn ds =[h an dles ...'T ag DiaCon M enu ' )) set (h an dles .. Uicon tr ol Obj ect의 GUI요소 사용 방법 그런데.CM ark Rd h an dles .'T ag ' ).79 - . h an dles ..DM arkR dM en u h an dle s .. y editb ox 에서 설정한 값들을 근거로 plot ...DM arkRd h an dles .Ch eck _h n d s ) s et (h an dles .DM ark Rd ..'T ag ' )..'T a g ' )... 같은 방법으로.. E x Ch oice_m enu (1. 여기서.A M arkR dM en u ].... 즉. 결국...m 함수를 사용하여 u icont ex tm en u에 배타적 선택의 기능을 부여하 기 위해서는 다음과 같이 codin g해 주면 된다. 그러므로.. . ev ent dat a . % .. Dh Lin eCh k_Callb ack은 다음과 같이 code를 첨가 해 주면 된다.'m ark er ' .fu n ction v ararg ou t = DM arkR d_Callb a ck (h .' DM arkRdM en u ' ) | str cm p (g et (g cb o. Ex Ch oice_m enu . Diam on d R adiob utton이 m ou s e로 click한 상태(즉... te st ...1) en d .

m 함수로 plottin g해 주는 기능...DhLin eChk h an dle s . E x Ch oice_m enu (1....DhLin eChk .. h an dles .fu n ction v ararg ou t = T a gPlay Bu tt on_Callb ack (h ...T ag Dt ConM enu ..m (Dh Lin eCh k_Callb ack ) .x .. g uide... if str cm p (g et (g cb o.. P lay bu tt on의 T ag n am e은 T a g P l ay B u t t o n 으로 설정하자. Cu rrentLin eColor =g et (h an dles . y _str =g et (h an dles .'T ag ' ). 같은 방식으로. P lay 버튼은 다음과 같이 2가지 기능을 수행하도록 만들 것이다.. x =str 2nu m (x _str ).. % .DtLin eChk h an dles .YE dit Str .t est .m (T agPlay Bu tton_Callb ack ) .' ..XE dit Str .Cu rrentLin eColor (1)).' ) % .....'v alu e ' ...fu n ction v ararg ou t = Dh Lin eCh k_Callb ack (h . defau lt lin e ty pe으로 바꾸어 주는 기능.T ag DCon M en u h an dles .굳이 설명하지 않아도 이해 할 수 있을 것이라고 본다....Lin e_h an dle =fev al (' plot ' . E x Ch oice (1.. v ar ar gin ) % Stu b for Callb ack of th e u icontr ol h an dles . x .. 1) x ...RSlid ..' strin g ' )..... 2) Play b utton을 click 하면. ConM en u_item _h n d s =[h an dles ...'Lin eSty le ' ... DtLin eCh k_Callb ack과 DDLin eCh k_Callb ack에도 code를 첨가 해주기 바란 다.. P lay bu tt on에 대한 callb ack함수의 처리를 생각해 보자. h an dles .t est ..80 - .. 해당 x .....DDLin eChk ]......Lin e_h an dle..m 함수에 추가해 준다. y (x )의 editb ox 에 값들을 입력한 뒤에 Play b utton을 click하면. 이때.......m 함수의 Pr operty In spect or를 사용하여 P lay bu tt on의 Callb ack함수 pr ot oty pe을 t est .'T a gDConM en u ' ) set (h an dles ....Ch eck _h n d s ) s et (h an dles . y (x )에 입력한 값들에 근거하여 plot .' color ' ). v ararg in ) % Stu b for Callb ack of th e u icontr ol h an dles . ConM enu _it em _h n d s )..... y =ev al(y _str )... ev en t dat a ... 우선.1) en d ..... y (x )의 값에 근거하여 plot .......m (Dh Lin eCh k_Callb ack ) .......... s et (h an dles .m 함수를 사용하여 plottin g하도록 play butt on 의 callb a ck함수를 codin g 해 보자.y )....'v alu e ' . h an dles ........ Ch eck_hn ds =[h an dles .......Lin e_h an dle ... Uicon trol Object의 GUI요소 사용 방법 % ...' strin g ' )... ..T agP lay Button . 기존에 선택한 모든 Lin e T y p es를 해지하고.. h an dles ...T agDefau ltM en u ]... 마지막으로.Dh Lin eChk ........T agDD ConM enu h an dles . x _str =g et (h an dles .1. ev ent data .t est ..

m (T agPlay Bu tton_Callb ack ) . s et (h an dles .x . .. Cu rrentLin eColor =g et (h an dles .Cu rrentLin eColor (3 ))..CM arkRdM en u h an dles ...YE dit Str ..DtLin eChk h an dles . x _str =g et (h an dles . h an dles ....fu n ction v ararg ou t = T a gPlay Bu tt on_Callb ack (h .①번 lin e은 기존에 선택한 모든 uicon tex tm enu 의 ch eck sig n을 해지하고..... t est .' color ' ).T agP lay Button ...... x =str 2nu m (x _str )..Cu rrentLin eColor (1))..T ag Cir ConM enu . s et (h an dles . default m en u에 ch eck sig n을 부여하는 기능에 대한 설명이다.T agDt Con M en u h an dles ..T ag DefaultM enu ]. ▶ ② Ch eck_hn ds =[h an dles ...GSlid .. h an dles .' strin g ' ).'v alu e ' . ▶ ④ s et (Ch eck_hn d s ..... 이제... ConM en u_item _h n d s =[h an dles ...'v alu e ' .... h an dles . s et (Ch eck_hn d s .h an dle s )...... v ar ar gin ) % Stu b for Callb ack of th e u icontr ol h an dles .T a gDConM en u .' strin g ' )....0) % .'v alu e ' . y =ev al(y _str ).t est .CM ark Rd h an dles . s et (m en u_it em _hn ds . 기존에 선택한 모든 Lin e T y pes를 해지하고.DM arkR dM en u h an dle s . default lin e ty pe으로 바꾸어 주는 기능을 추가해 주면 code는 다음과 같이 될 것이다. y _str =g et (h an dles . g uidata (h ..m 함수의 초기화 r ou tin e을 설정할 때 사용한 code들임을 알 수 있다.y )....Lin e_h an dle .t est .Curr en tLin eColor (2))...A M ark Rd]..... s et (h an dles .T ag DDCon M en u h an dles ...' v alu e ' . ▶ ① m en u_item _h n d s =[h an dles .m (T agPlay Bu tton_Callb ack ) .0) ▶ ③ Ch eck_hn ds =[h an dles . Uicon tr ol Obj ect의 GUI요소 사용 방법 s et (h an dles . E x Ch oice_m enu (7... h an dles .' ch eck ed ' .'v alu e ' ..BSlid .... Play butt on 을 click 하면...'v alu e ' .....A M arkR dM en u ].BSlid ....m (T agPlay Bu tton_Callb ack ) ---------------------- 결국.h an dle s ).... % . ConM enu _it em _h n d s ).T agA stConM en u h an dle s .DDLin eChk ]..... s et (h an dles .t est ..Cu rrentLin eColor (3 )).T ag DiaCon M enu h an dles ... % ...DM arkRd h an dles . ev ent data .Lin e_h an dle =fev al (' plot ' ..XE dit Str .......Curr en tLin eColor (2))..' v alu e ' ...' off ' )..GSlid ..81 - .DhLin eChk h an dle s .... g uidata (h .1.RSlid ...

③번. ④번 lin e 각각은 m enu 와 r adiobu tt on s . 그리고 ch eckb ox 의 선택 상황을 모두 해지해 주는 r outin e이다.82 - . Uicon trol Object의 GUI요소 사용 방법 ②번. 이 것 으 로 GU I pro g ram m in g 에 대 한 설 명 을 마 친 다 .1. .

Sign up to vote on this title
UsefulNot useful