본문 바로가기
매트랩(Matlab)/매트랩 gui

[Matlab gui / 매트랩 GUI] 2. push 버튼 구현하기

by freezkim 2010. 3. 20.

[Matlab gui / 매트랩 GUI] 매트랩 gui 강의 2번째 - push 버튼 구현하기

자 드디어 아기다리고기다리던(.....) gui강의가 돌아왔습니다.

저번시간에 미칠듯이 쏟아져 나온 코딩을 슬슬 파헤쳐 보도록하겠는데요.
매우많이 정신이 어지러워질 수 있으시니 노약자 및 음주자 등등등은 정신이 말짱해지거나 심신의 각오를 다진후에 볼 것을 권합니다.

guide를 이용해서 버튼을 드래그하고 꾸미는거는 아셨을거라 생각하고, 이제 천천히 그 버튼 하나하나들이 각각의 제기능을 할 수 있도록 내부를 한번 꾸며보도록 하겠습니다.

일단 guide를 이용해서 push button 하나랑 edit text 버튼 하나를 만들고 ex1이라는 이름으로 저장해봅시다.


저장하게 되면 네 미친 코딩이 쏟아져 나올텐데요...ㅠㅠㅠ 겁먹지 말고 한번 찬찬히 살펴봅시다.


뭐 이런식으로 써져있는데요. 녹색 부분은 어차피 주석부분이니 과감하게 넘어가고, 알맹이만 봅시다 ㅎㅎ
쭉쭉 넘어가면서 대충의 구조를 파악해보면 function 어쩌고 저쩌고 이런식의 구조가 반복된 것을 알 수 있습니다ㅋ

function 어쩌고 저쩌고
handles.output = hObject;
guidata(hObject, handles);

function pushbutton1_Callback(hObject, eventdata, handles)
......
...
..

뭐 이런식으로 되어있죠. 이 function 부분이 gui에서 짠 각각의 단추들과 연관이 되어 있는 부분입니다. 예를들어
function pushbutton1_Callback(hObject, eventdata, handles)
이 부분은 guide상에서 짠 pushbutton1 단추랑 연관이 되어 있는거죠ㅎ
만일 gui로 짠 프로그램 상에서 pushbutton1을 누른다면 function pushbutton1의 내용이 실행되게 됩니다.

function pushbutton1_Callback(hObject, eventdata, handles)
disp('안녕')
이렇게 m-file에서 입력하신다면 gui프로그램을 실행시키고 버튼을 누를때마다 '안녕' 이란게 뜨게 되는거죠.
여튼 대충 이런 구조라고 생각하시고 function이라고 적힌 부분만 살펴봅시다.

위에처럼 만들었다면 function이 총 5개가 있는 것을 확인 할 수 있습니다.

제일 먼저 function ex1_OpeningFcn(hObject, eventdata, handles, varargin)
->프로그램을 실행하면 자동으로 요 function의 내용을 시작시킵니다. 지금 뭐 딱히 실행시킬건 없으니 넘어갑시다ㅎㅎ

function varargout = ex1_OutputFcn(hObject, eventdata, handles)
->요건 그냥 패스 뭔가 출력이 되는거 같긴한데 저도 요부분엔 뭘 써본적이 없어서 잘 모르겠네요(..) 마찬가지로 패스

function pushbutton1_Callback(hObject, eventdata, handles)
->pushbutton1을 누르면 실행되는 부분입니다. 

function edit1_Callback(hObject, eventdata, handles)
function edit1_CreateFcn(hObject, eventdata, handles)
->edit text와 관계되어 있는 부분인데 text박스에서 뭔가 실행을 시키는 경우는 없으니 걍 이부분도 넘어갑니다.

자 요렇게 5갠데요. 우리가 오늘 할 내용은 pushbutton을 구현하는 거니깐 pushbutton저 부분만 건드려 봅시다.

먼저 매트랩창에서
 >>open ex1 이라고 치셔서 ex1의 m-file 창을 띄우시구요ㅋ
function pushbutton1_Callback(hObject, eventdata, handles) 여길 찾으신후 밑에
disp('안녕')
이렇게만 입력한 후에 프로그램을 실행시켜서 되나 살펴봅시다ㅎㅎ

m-file을 저장하신후 끄고
매트랩 상에서 gui로 짠 프로그램을 실행시켜 봅니다. 그냥 ex1이라고 이름 치시면 되요. 클릭을 마구 하시면 요렇게 실행이 됩니당 ㅎㅎ

네 간단하죠?

function pushbutton1_Callback(hObject, eventdata, handles)
이 부분 밑에 disp('안녕') 대신에 edit text부분이랑 연동을 시키면 버튼을 클릭할 때마다 edit text의 부분에서 뭔가 나타나도록 할 수 있을겁니다ㅋ 그부분에 대한 내용을 다음 강의해서 보도록 해보아요ㅋ

 

 

Tip!!
push button에서 오른쪽 클릭 하신후 property inspector를 열어 보시면
Tag라는 부분이 있어요ㅎ 이부분에 이름을 바꿔주시면~~

m-file에서 이름도 바껴있답니다. 저는 HAHAHA로 바꿨는데 밑에서도 마찬가지로 HAHAHA로 바꿔져있죠??ㅋ

네 원하는 이름대로 버튼 이름을 지정하면 프로그래밍하기가 좀더 쉬울겁니다!!

팁이라고 하기보단 뭔가 강의내용이군요ㅠㅋ