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

[Matlab gui / 매트랩 GUI] 3. Edit Text 사용하기

by freezkim 2010. 4. 8.
[Matlab gui / 매트랩 GUI] 매트랩 gui 강의 3번째 - edit text 사용하기

저번시간에는 push button을 사용하는 걸 해봤는데요. 이번시간엔 저번시간에 이어 edit text박스를 사용하는 걸 해보도록 하겠습니다.
ex1이라는 이름으로 저장했었는데, ex1이란 이름의 명령어가 매트랩에 원래 있길래 이름을 바꿨습니다.

push button 한개와, edit text 하나를 붙여놓고 guiex1 이라는 이름으로 저장하였습니다.


edit text 라는건 '텍스트'에 관한 모든내용을 처리하는 부분입니다. 
어떤 글을 edit text에 해당하는 부분에 쓸 수도 있고 혹은 어떤 문구를 출력시킬수도
있어요.
물론 요부분에 글을 쓴걸 저장할수도 있구요.

일단 요 edit text창에 어떤 글을 띄우는 방법이랑 글을 입력받는 방법을 알아보도록 합시다ㅋ

1. edit text에서 글 입력받기
>> open guiex1.m
을 해서 m-file을 엽니다.

m-file을 보시면 edit text창과 관계된 함수가 보이는데요. 바로 요부분입니다.

뭐 사실 이부분에 우리가 작업해야될 내용은 전혀 없습니다.(요태까지 그래왔고 아패로도 개속ㅋ)
edit text는 그냥 '존재' 할 뿐, 뭐 실행 버튼이 있다거나 그런게 아니니깐요. 이 함수가 실행될리도 없겠죠.
그냥 살포시 아 있구나, 그런데 어쩌라고-_- 이러면서 넘어가주시면 됩니다.


다만 위에 잘 보시면 Hint: get(hobject,'String') returns contents of edit 1 as text 라고 적혀있는데요.
무슨 의미냐면 get(텍스트박스이름(지금의 경우는 edit1), 'String') 이라고 입력해주시면 edit text에 적힌 글자 내용이
불러 들어와진다는 뜻입니다.

좀더 엄밀히 말하자면 실질적인 사용법은 이렇게 입력 됩니다.

ss= get(handles.edit1 , 'String');

이렇게하면 edit box에 적혀진 내용이 ss라는 변수에 문자타입으로 저장되게 됩니다.
여기서 보시면 handles.edit1이라고 썼는데, 원래 쓰는형식이 이렇습니다ㅠ handles.'박스이름' 입니다.
edit1 이란게 어떤 변수가 아니라 handle 클래스이기 때문에 handles.edit1이라고 쓴다고 하는데...네 뭐 자세한건 넘어갑시다
이론따위는 개나 줘버리.....(죄송합니다 공부하겠습니다 ㅠㅠ)

어찌됐건
 문제는 이걸 부르려고 해도 함수를 실행시키려면 '실행버튼'이 있어야 되는데 edit text에는 그런게 없으니깐, 다른데서 불러와야 하죠. 따라서 요 밑에 있는 pushbutton에게 살포시 양해를 구해서 'pushbutton씨 거좀 실행할 때 edit text를 좀 불러옵시다.'고 부탁을 좀 해야됩니다ㅋ
 즉, 밑에 있는 pushbutton의 함수에 get(handles.edit1,'String')을 입력해주면, pushbutton을 누를때마다 edit text에 있는 내용이 불러와지게 됩니다. 백문이 불여일견 직접 한번 만들어 보도록 합시다::


요렇게 ss=get(handles.edit1,'String');으로 edit text 박스에 있는 내용을 ss에 저장하구요.
disp(ss)를 함으로써 매트랩 상에 출력이 되도록 했습니다.
직접 되나 한번 볼까요??ㅋ

guiex1을 실행하고, pushbutton을 눌러보면 오른쪽과 같은 결과를 보이는 걸 알수 있습니다
 
 
요번엔 다르게 입력하고


push button을 눌러보면 출력이 잘 되는것을 확인할 수 있습니다


2. edit text에 글 띄우기
위에서 글을 입력 받을 땐 get(가져오다) 을 썼는데, 요번엔 반대로 set을 써주면 글 띄우는게 가능합니다.
형식은 거의 동일하니깐 별다른 설명없이 명령어 쓰는 법만 적을게요

set(handles.edit1,'String', 입력할 내용(문자타입) );

요렇게 앞에 2개는 동일하고, 뒤에 추가적으로 입력할 내용을 넣어주시면 되는데, 단 '문자타입'으로 입력해 주셔야 합니다.
마찬가지로 백문이 불여일견!! 직접 해볼까요?

이런식으로 sprintf를 이용해서 1을 문자타입으로 바꿔주었습니다. 자 이렇게 코딩을 하게 되면

 push button을 누를 때 다음과 같이 edit text창에는 1이 뜨게 될것입니다.



자 일단은 이렇게 edit text 창을 사용하는 방법을 알아보았습니다ㅋ
다음시간엔 'global 변수' 라는 걸 이용해서 edit text와 push button을 이용한 간단한 프로그래밍을 한번 해보도록 할게요ㅋ 
완전 쉬어가기 코너...(아니 쉬는게 코딩이라니!!)....가 될듯.......??

그 이후엔 다시 다른 버튼을 구현하는걸 해보도록 합시다ㅎㅎㅋ