본문 바로가기
▶ Project_Python/◾ PyQt5 & Qt_Designer

QtDesigner 레이아웃 종류 및 설정 방법

by ★→←★ 2021. 10. 14.
반응형

각자가 원하는 프로그램을 구상했다면 이제 본격적으로 외관에 대해서 생각해 볼 필요가 있습니다. 프로그램 외관을 구성하는 방법은 다양한데, pyqt5, qtdesigner를 이용하는 방법을 알아둔다면 보다 간편하게 활용할 수 있습니다. 인터페이스를 구성하는데 중요한 첫걸음은 각 기능들이 배치될 수 있는 레이아웃을 설정하는 것이라 할 수 있습니다.

 

QtDesigner에서 활용할 수 있는 레이아웃(layout)은 크게 4가지로 수성되어 있습니다. 그 밖에도 부가적인 기능을 담고 있는 방법도 있으며, 레이아웃으로 지정되지 않은 그룹도 존재합니다. 또한, 별도의 레이아웃없이 각 버튼 및 뷰어를 배치하여 자신만의 프로그램을 구성하는 방법도 있습니다.

 

 

QtDesigner 레이아웃의 역할.

굳이 별도의 설명이 없어도 몇몇 프로그램을 다뤄본 경험이 있다면 레이아웃에 대한 개념을 가지고 있을 것입니다. QtDesigner에서도 그와 같은 개념으로 접근하면 충분히 활용하는데 지장이 없을 수 있습니다.

 

레이아웃은 영역을 구분하는데 활용되는 기능이라 할 수 있습니다. 예를 들어, '확인'버튼과 '취소'버튼은 짝을 이루는 경우가 많습니다. 해당 버튼을 하나의 묶음으로 지정한다면 프로그램 ui를 구성할 때, 또는 편집에 상당히 편리할 수 있으며 사용자로 하여금 친숙한 모습을 보일 수 있습니다.

 

여기서 활용되는 대표적인 방법이 바로 레이아웃이라 할 수 있습니다. 만약, 그렇게 복잡하지 않은 구성의 프로그램이라면 굳이 별도의 레이아웃을 설정하지 않아도 프로그램을 와성하는데 지장은 없습니다.

 

QtDesigner 레이아웃의 종류.

별도의 설정을 하지 않았다면 QtDesigner를 실행했을 때, 아래와 같은 모습을 볼 수 있을 것입니다.

 

qt디자이너 기본 화면

 

오른쪽 메뉴바는 '위젯 상자'로 구성되어 있으며 가장 상단에 'Layouts'라는 메뉴가 있습니다. 프로그램 상단의 '퀵메뉴바'에도 레이아웃 메뉴들이 존재합니다.

 

📌 레이아웃(layout) 종류

  1. Vertical Layout
  2. Horizontal Layout
  3. Grid Layout
  4. Form Layout

📌 레이아웃(layout)을 사용하지 않는 방법

  1. Group Box 사용
  2. 레이아웃 없이 위젯 배치하기

 

기본적으로 활용될 수 있는 레이아웃에 대한 종류입니다. 그 밖에도 사용자의 취향에 맞는 위젯을 만들어 사용해볼 수도 있다고 하는데, 꼭 필요한 경우가 아니며 개인의 용도 혹은 학습을 위해서라면 기본적은 메뉴를 충분히 숙지하는 것을 추천합니다.

 

✔ 기본 레이아웃 종류와 용도

① Vertical Layout

가장 먼저 눈에 띄는 레이아웃의 이름입니다. 아이콘의 모습으로 직관적인 사용방법을 알 수 있기도 합니다. 해당 레이아웃에 속하는 위젝들을 세로로 정렬하는 기능을 제공하고 있습니다.

 

 

② Horizontal Layout

위 Vertical Layout과 180도 다른 성격을 띄고 있습니다. 해당 레이아웃에 속하는 위젯들을 가로로 정렬하는 기능을 가지고 있습니다. ①,②은 가로와 세로의 활용으로 구분하면 도움이 될 수 있습니다.

 

 

 

③ Grid Layout

해당 레이아웃의 경우 격자 무늬로 위젯들을 배치하는데 활용할 수 있습니다. 가로, 세로로 배치되는 위젯들의 개수에 상관없이 격자형태로 확장하여 위젯들을 배치하여 프로그램을 구성할 수 있습니다.

 

 

 *Grid Layout은 자주활용하게 될 수 있습니다. 배치된 위젯들이 메인 윈도우 창에 따라 크기가 변화될 수 있도록 설정하는 가장 간단한 방법은 전체 위젯들에 Grid Layout을 설정하는 방법이기 때문입니다.

 

 

④ Form Layout

Grid Layout과 비슷한 모습을 보이지만 가로로 한계성을 가지고 있습니다. 2개의 위젯을 배치할 수 있으며, 세로방향으로 확장하여 위젯들을 배치하여 정렬할 수 있습니다.

 

 

⑤ Group Box

해당 위젯은 레이아웃으로 구분되지 않습니다. 단순히 각 위젯들을 하나의 덩어리로 영역을 구분할 때 활용할 수 있습니다. 배치 후, qtdesigner를 가상으로 실행해보면 기본 실선으로 구분되는 것을 확인할 수 있습니다.

 

 

group box는 레이아웃 위젯과 큰 차이점이 있습니다. 메인 윈도우 상에서 별도의 영역으로 구분되어 있다는 공통점이 존재하지면 기본적으로 일정한 형태의 정렬이 이루어지지 않습니다. 다시 말해, 사용자가 배치하고 싶은 곳에 배치하여 다른 위젯들과 구분지을 수 있습니다.

 

 

⑥ 레이아웃없이 위젯 배치하여 구분하기

드래그엔 드롭을 이용하여 각각의 위젯들을 윈도우에 배치할 수 있습니다. 특정한 규칙없이 나열할 수도 있으며, 임의의 규칙으로 배열할 수도 있습니다. 물론, 하나씩 위치를 잡아줘야하기 때문에 번거로움이 남습니다.

 

 

이렇게 각 위젯들을 배치하여 프로그램을 완성해도 사용하는데 지장은 없습니다. 다만, 정렬되지 않은 모습과 확인에 거부감이 생길 수도 있습니다. 이런 경우 적당하게 영역을 구분해줌으로써 사용자의 긍정적인 사용을 이끌어 낼 수 있습니다.

 

이 때, 사용할 수 있는 위젯이 바로 'Horizontal Line'과 'Vertical Line'입니다. 해당 위젯을 배치하여 가로 선, 세로 선을 나타낼 수 있습니다. 적절히 사용하면 충분히 좋은 구분선이 될 수 있을 것입니다.

반응형

댓글