operator01.jpg



안녕하세요? LGS입니다. 오랫만에 MATLAB 때려잡기 강의입니다. ㅋㅋ

오늘은 GUI(Graphic User Interface)에서 그래프(axes)와 라디오 버튼(radio button)을 가지고 놀아보겠습니다요~ ^^

(본 강좌는 junkon님의 질문에 대한 답변이기도 합니다.)


guide0404.gif


지난 GUI 강의를 통해 GUI에서 가장 중요한 handle이란 것이 무엇이고 

set과 get함수를 이용해 property value를 setting하는 방법과 property value를 가져오는 법을 익히셨죠?

(지금 제가 무슨 말을 하는지 이해가 가지  않으신 분들은 'MATLAB 때려잡기 - GUI 1,2,3부'를 참조하세요~ ^^)

오늘은 위의 애니메이션에 보이는 것 처럼 라디오 버튼을 클릭하면 그림이 바뀌는 놈을 만들어 봅시다요잉 o(^o^)o

오늘 만들어 볼 녀석도 지난번 만들어 보았던 계산기 GUI와 작성방법이 크게 다르지 않습니다.


우선 라디오 버튼(radio button)은 집에 있는 선풍기를 생각하시면 쉽게 감이 오실겁니다.

선풍기에 보면 미풍, 약풍, 강풍 버튼들이 있죠?

미풍 버튼을 눌러놓아서 선풍기가 미풍으로 살랑살랑 돌고 있는데 약풍 버튼을 누르면 어떻게 되나요?

미풍 버튼은 튀어올라오고 약풍버튼이 눌러지죠?

라디오 버튼도 선풍기 버튼이랑 똑같아요 똑같아요 아주 똑 같아요~

즉 한번에 하나밖에 선택을 하지 못하는 녀석입니다요.


자~ 그럼 본격적으로다가 GUI 만들어 봅시다.

command window에서 >>guide 하셔서 blank gui 하나 만드시구요

아래와 같이 Axes 하나,  Button Group 하나, 라디오 버튼 2개를 대충 그려주세요~

Button Group과 Panel의 모양이 비슷하니 주의하시구요

(라디오 버튼은 Button Group안에 그리셔야 합니다)


guide0401.png


각각의 라디오 버튼을 더블 클릭해서 inspector 창을 띄운 다음 String을 'Camera Man'과 'NGC 6543'으로 각각 변경해주시구요

Ctrl+S 하셔서 아무 이름으로 저장해주세요


guide0402.png


저장하신 다음

Button Group을 선택하신 후 마우스 오른쪽을 클릭해서 나오는 메뉴중에 View Callbacks -> SelectionChangeFcn을 선택합니다.

SelectionChangeFnc는 말그대로 (라디오 버튼의) 선택(Selection)이 바뀌면(Change) 자동으로 실행되는 Callback 함수(Fnc:Function)입니다.


guide0403.png


SelectionChangeFnc를 누르시면 MATLAB이 자동으로 uipanel1_SelectionChangeFnc함수를 작성해 줍니다.

주석을 빼고 보면 정말 아무것도 아니죠? ^^


말씀 드렸듯이 Button Group내의 radio button의 선택이 바뀌게 되면 자동으로 uipanel1_SelectionChangeFnc 함수가 실행되구요

선택된 radio button의 handle이 uipanel1_SelectionChangeFnc 함수에 hObject로 넘어오게 됩니다.

switch~ case~ 문은 문제 없으실 거구요

imread 함수로 그림 파일을 읽어들여서 imshow 함수로 axes에 이미지를 띄웁니다.

저는 간단하게 MATLAB에서 기본적으로 제공하는 'cameraman,tif'와 'ngc65543a.jpg' 이미지 파일을 사용했습니다.

axes를 선택하시려면 axes() 하시고 괄호안에 여러분이 원하는 axes 핸들을 적어주시면 되구요~

역시 어려운건 전혀~ 없네요 =(=^ㅅ^=)=



간단하게 강의 마치겠습니다.

이상입니다. 

다음 강좌에서 뵈요~ 뾰로롱~


profile