페이지

2016년 3월 19일 토요일

pvdevelop 프로젝트 -UI 편집 방법 - Toolbox 위젯 사용법

ToolBox 역시 처음 사용해 보는 위젯이다.

pvdeveloper IDE의 에디터 모드에서 좌측에 나타나는 Module, Widget Names 전환에 사용된 것이 ToolBox의 사용 예다. 똑같이 만들 수 있다.

그럼, 오늘은 ToolBox 작화 방법 만 알아 보기로 한다. 새부 코드는 언급하지 않을 예정이다.

그림 1. ToolBox Gui 화면 TAB 1
그림 2. ToolBox Gui 화면 TAB2
그림 3. ToolBox Gui 화면 TAB3
그림 1, 2, 3 은 ToolBox 위젯 작화 화면이다. 1 부터 TAB 1, 2 ,3 이런 식으로 만들어 진다.
ToolBox를 이용하면 ToolBox 버튼을 눌렀을 때 필요한 항목이 나타나고 자동으로 숨기게 만들 수 있다.
 툴박스의 TAB 1번은 First, 2번은 Second, 3번은 Third로 명명되어 있다. First 탭(ITEM 이라고 명칭이 붙어 있다.) 에는 2개의 체크 박스를 넣어 주었고, Second 탭에는 1개의 콤보 박스, Third 탭에는 LineEdit터 한개를 넣어 주었다. 우선은 모양새라던가... 이런 것은 때려 치우고 한번 만들어 보자...

1.ToolBox 위젯 삽입.

 디자이너 모드에서 오른쪽 마우스버튼을 눌러 Insert Widget을 눌러 나타나는 창에서 ToolBox를 선택하면 다음과 같은 다이얼로그 창이 나타난다.

그림 4. 툴박스생성 창

기본적으로 2개의 탭이 만들어지는데 이 창에서 원하는 탭의 제목(?)을 넣어주면 된다. 본인이 만든 툴박스의 첫번째 탭 이름은 First 이므로 First를 넣고 OK 버튼을 누르면 두번째 탭의 제목을 넣어 달라고 한다. 두번째 이름 Second를 입력하고 OK를 누르면 다음과 같이 나타난다.

그림 5. 기본 툴박스 생성 GUI 화면

툴박스 위젯의 기본 크기가 99, 30 이기 때문에 이런 식으로 나타난다. 마우스를 위젯이 선택된 상태(검은색)에서 위젯의 우측 하단으로 이동하여 위젯의 크기를 변경하자. 위젯 속성창에서 변경하여도 된다.
 본 인은 속성창에서 폭 120, 높이 100 으로 변경하였다.

그림 6. 크기 변경후 GUI 화면
First와 Second 사이에 공간이 있는 보기 쉬운 형태로 바뀐다.


Keypoint --- ReleaseMouse(R)   CTRL+R

 지금부터 설명하는 내용을 이해하지 못하면 Toolbox, GroupBox,...위젯을 만들어 놓고 탭(항목)간 어떤 방식으로 전환해야 하는지 머리만 끍적이고 있어야 한다. 도무지 어떤 방법으로 전환하는 지 알 수가 없었다.





 디자이너 모드, 위젯 배치 창에 나타나는 마우스 포인터의 모양은 다음과 같은 4가지 경우가 있다.
  •  +
  •  크로스 화살표 모양
  •  대각 화살표 모양
  •  윈도우 기본 모양
 위젯 배치 창의 기본 포인터는 (+), 메뉴 선택 창에서는 윈도우 기본 모양으로 나타난다.

 디자이너 모드 창에서 위젯을 배치하거나편집할 때 나타나는 마우스 아이콘은 "+" 모양이다. 디자이너 창을 벋어나면 일반 윈도우 마우스 화살표가 나타난다.
방금 만들어진 위젯위로 마우스 버튼을 움직이면 마우스 아이콘이 화살표를 같는 "+" 모양으로 바뀔 것이다. 이 상태에서 마우스 왼쪽 버튼을 누르면 위젯이 선택되면서 위젯 색상이 검은색으로 바뀐다. 검은색으로 바뀐 영역이 위젯의 크기라 생각해도 무방하다.


  그럼 ReleaseMouse 버튼은 무슨 용도 일까. 정확한 용도는 모르겠고...어디선가 설명을 읽은 적이 있긴 한 것 같은데, 그때도 이해가 되지 않았다. 여하튼 이 버튼을 이용하면 탭 항목 사이를 전환할 수 있다.

  사용해보자.
 마우스 버튼을 위젯 위에 위치시키면 십자 화살표가 나타날 것이다. 이 때 releaseMouse를 실행하기 위해 단축키 "CTRL-R"을 눌러주자. 마우스 포인터가 윈도우 기본 포인터로 변경될 것이다. 이때 원하는 탭 항목(아이템)을 눌러 주면 원하는 탭으로 변경된다. 위젯 영역 밖으로 마우스를 이동하면 마우스 포인터가 "+"로 다시 변경 되며 위젯을 편집, 혹은 삽입할 수 있는 상태로 전환 된다.


그림 7. 탭 변경후
ReleaseMouse 를 이용하여 Second 아이템이 툴박스 기본 아이템으로 변경한 화면이 그림 7이다. First와 Second 사이에 공백이 없어진 것을 알 수 있다.

이제 툴박스 GUI 편집에 필요한 단계 중 9부 능선 이상 올라온 것이다. 나머지는 일반 GUI 작화와 별다른 것이 없다.

탭항목(First, Second,...)에 위젯을 넣을 때는 툴박스 위젯 밖에서 생성, 편집 후 툴박스의 필요한 탭 항목에 이동시킨 후 속성창에서 위치를 한번 더 수정해 주면 보기 좋은 화면을 얻을 수 있을 것이다.

2. ToolBox 탭에 위젯 삽입


그림 8. First 탭 체크 박스 위젯 삽입
 그림 8은 First 탭에 체크 박스를 넣어주고 화면이다. 한개의 체크 박스는 First 와 Second 탭 사이의 공간에 있고, 다른 한개의 checkbox는 밖에 있다.객체 지향 언어의 특성을 이야기 하는 항목 중 모자(부모와 자식)관계라고 하고 개념이 있은데, 툴박스 위젯에 이 관계를 인용하여 이야기 하자면(단지 설명을 위해서...) First 항목 밑에 있는 체크박스는 First 항목의 자식이고 First 탭은 부모라고 생각하자. 당연히 툴박스 밖에 있는 체크박스는 모자 관계가 아니다.
이런,... 이상한 얘기가 되어 버렸네... 밖에 있는 checkbox도 First 의 자식으로 만들어 보자.

그림 9. First 탭 완성 GUI 화면
 툴박스 위젯 밖에 있는 checkbox를 First 와 second 항목 사이에 넣어주면 된다. 자 Fist 탭이 GUI 화면 상에서 완성된 것 같으니 컴파일 후 pvbrowser 에서 확인해 보자.

그림 10.pvbrowser 실행 화면
그림 10과 같이 나타날 것이 성질 급하신 분들은 Second 탭을 마우스 버튼으로 눌러 보시기 바란다.

자, First 탭은 완성 되었으니 Second Tab에 콤보 박스를 하나 집어 넣어 보자.

그림 11.Second 탭 위젯 추가 화면
그림 11과 같이 하면 된다. 컴파일 후 pvbrowser를 실행하고 second 탭을 눌러 보자.

그림 12.pvbrowser 툴박스 선택화면
자, 다 된 것 같다.
위젯에서 필요한 코드는 직접 작성하기 바란다.


만약 탭을 추가하고 싶다면, 어렵게 생가하지 마라. 툴박스가 선태된 상태에서 오른쪽 마우스 버튼을 누르면 나타나느 팝업 창에서 Add Item을 누르면 그림 4와 같은 창이 나타난다. 제목을 넣고 OK 버튼을 누르면 추가 된다. 탭 오더는 어떻게 바꾸는 지 물어보지 말기 바란다. 본인도 처음 사용해 보는 거라 모른다.




pvSetStyle을 이용하면 스타일 변경할 수 있을 것 같다.(희망 사항...)
함수는 다음과 같이 정의 되어 있다.



함수 설명에 보면 QLabel, QFrame에 대한 shape, shadow 항목은 다음과 같다.

enum Shape비 고
NoFrame
Box
WinPanel
HLine
VLine
StyledPanel
PopupPanel
MenuBarPanel
ToolBarPanel
LineEditPanel
TabWidgetPanel
GroupBoxPanel
MShape


enum Shadow비 고
Plain
Raised
Sunken
MShadow

함수 인자로 -1을 넣으면, 적용되지 않는다는 설명과 함께, QLabel, QLineEdit, QFrame, QGroupBox, QLCDNumber, QProgressBar, QToolBox가 가능하다고 되어 있는 데 마스크 초기화 함수에 적용해 보았지만, 반응이 없다. 이런...OTL... 어떻게 되는 거지 QLabel, QFrame만 변경되는 건가????

댓글 없음:

댓글 쓰기