pvdeveloper IDE의 에디터 모드에서 좌측에 나타나는 Module, Widget Names 전환에 사용된 것이 ToolBox의 사용 예다. 똑같이 만들 수 있다.
그럼, 오늘은 ToolBox 작화 방법 만 알아 보기로 한다. 새부 코드는 언급하지 않을 예정이다.
그림 1. ToolBox Gui 화면 TAB 1 |
그림 2. ToolBox Gui 화면 TAB2 |
그림 3. ToolBox Gui 화면 TAB3 |
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 화면 |
Keypoint --- ReleaseMouse(R) CTRL+R
지금부터 설명하는 내용을 이해하지 못하면 Toolbox, GroupBox,...위젯을 만들어 놓고 탭(항목)간 어떤 방식으로 전환해야 하는지 머리만 끍적이고 있어야 한다. 도무지 어떤 방법으로 전환하는 지 알 수가 없었다.
디자이너 모드, 위젯 배치 창에 나타나는 마우스 포인터의 모양은 다음과 같은 4가지 경우가 있다.
- +
- 크로스 화살표 모양
- 대각 화살표 모양
- 윈도우 기본 모양
디자이너 모드 창에서 위젯을 배치하거나편집할 때 나타나는 마우스 아이콘은 "+" 모양이다. 디자이너 창을 벋어나면 일반 윈도우 마우스 화살표가 나타난다.
방금 만들어진 위젯위로 마우스 버튼을 움직이면 마우스 아이콘이 화살표를 같는 "+" 모양으로 바뀔 것이다. 이 상태에서 마우스 왼쪽 버튼을 누르면 위젯이 선택되면서 위젯 색상이 검은색으로 바뀐다. 검은색으로 바뀐 영역이 위젯의 크기라 생각해도 무방하다.
그럼 ReleaseMouse 버튼은 무슨 용도 일까. 정확한 용도는 모르겠고...어디선가 설명을 읽은 적이 있긴 한 것 같은데, 그때도 이해가 되지 않았다. 여하튼 이 버튼을 이용하면 탭 항목 사이를 전환할 수 있다.
사용해보자.
마우스 버튼을 위젯 위에 위치시키면 십자 화살표가 나타날 것이다. 이 때 releaseMouse를 실행하기 위해 단축키 "CTRL-R"을 눌러주자. 마우스 포인터가 윈도우 기본 포인터로 변경될 것이다. 이때 원하는 탭 항목(아이템)을 눌러 주면 원하는 탭으로 변경된다. 위젯 영역 밖으로 마우스를 이동하면 마우스 포인터가 "+"로 다시 변경 되며 위젯을 편집, 혹은 삽입할 수 있는 상태로 전환 된다.
그림 7. 탭 변경후 |
이제 툴박스 GUI 편집에 필요한 단계 중 9부 능선 이상 올라온 것이다. 나머지는 일반 GUI 작화와 별다른 것이 없다.
탭항목(First, Second,...)에 위젯을 넣을 때는 툴박스 위젯 밖에서 생성, 편집 후 툴박스의 필요한 탭 항목에 이동시킨 후 속성창에서 위치를 한번 더 수정해 주면 보기 좋은 화면을 얻을 수 있을 것이다.
2. ToolBox 탭에 위젯 삽입
그림 8. First 탭 체크 박스 위젯 삽입 |
이런,... 이상한 얘기가 되어 버렸네... 밖에 있는 checkbox도 First 의 자식으로 만들어 보자.
그림 9. First 탭 완성 GUI 화면 |
그림 10.pvbrowser 실행 화면 |
자, First 탭은 완성 되었으니 Second Tab에 콤보 박스를 하나 집어 넣어 보자.
그림 11.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만 변경되는 건가????
댓글 없음:
댓글 쓰기