파이썬으로 gui 프로그램을 만들기 위한 라이브러리는 몇 가지가 존재합니다. 그 중에서 pyqt 시리즈를 이용할 때, 프로그램의 레이아웃을 직관적으로 조작할 수 있는 것이 바로 QtDesigner입니다.
기본적으로 QtDesigner를 실행하면 Forms 중 하나를 선택하게 됩니다. 일반적으로 Main Window를 선택해서 프로그램을 만들게 됩니다. 그 밖에도 Widget, Dialog 시리즈가 있습니다. 필요에 따라 선택적으로 활용하면 도움이 될 수 있습니다.
QtDesigner 시작 – forms 이해하기
Main Window
가장 기본이 되는 form이라 할 수 있습니다. 메인 윈도우에 레이아웃을 설정하고, 버튼, 아이템, 위젯등을 배치하여 프로그램의 외관을 설정할 수 있습니다.
메인 윈도우를 생성하면 아무것도 없는 회색 바탕의 창이 하나 표시가 됩니다. 이 창이 바로 프로그램의 외부 테두리가 되는 것입니다. 내부의 회색 배경에 점이 있는 부분은 버튼을 비롯해 다양한 기능들을 배치하는 공간입니다.
처음 이 모습을 직면하면 낯설기만 합니다. 왼쪽에 있는 위젯 상자에서 아이콘을 드래그 앤 드롭하여 메인 윈도우에 배치할 수 있습니다.
적절하게 자신이 원하는 곳으로 위젯들을 배치하여 프로그램의 외모를 준비한 후, 저장 합니다.
widget
새 폼 설정에서 위젯(Widget)을 하나 생성하도록 합니다.
생성된 위젯은 위 사진과 같은 모습을 합니다. 메인 윈도우와 크게 차이를 보이지는 않습니다. 메인 윈도우를 기준으로 연결하여 사용할 수 있습니다.
Dialog 시리즈
또 다른 폼으로 dialog가 있습니다. 3개의 선택지가 주어집니다. 잘 읽어보면 어떤 의미인지 쉽게 파악할 수 있습니다.
- Dialog with Buttons Bottom
- Dialog with Buttons Right
- Dialog without Buttons
이름에서 알 수 있듯 버튼이 포함되는 경우와 아닌 경우로 크게 구분할 수 있습니다. 또한 버튼의 위치에 따라 두 가지의 분류로 나뉘게 됩니다.
위 사진의 번호대로 이해하면 됩니다. 다시금 정리하면 다음과 같습니다.
- Dialog with Buttons Bottom
- Dialog with Buttons Right
- Dialog without Buttons
QtDesigner 이해하기
프로그램의 계층 구조에 따라 필요한 폼을 생성하여 이용할 수 있습니다. QtDesigner는 프로그램이 실행할 수 있도록 해주는 기능은 없습니다. 사용자에게 보여지는 모습을 만들 때 도움을 주는 것입니다.
이렇게 만들어진 ui파일을 파이썬 코드와 연결하는 작업을 해주어야 합니다. 기본적으로 창을 띄우고 실행하며, 클래스에 있는 함수들을 지속적으로 읽어 줄 수 있도록 루프를 돌리는 코드들이 있습니다. 지난 글(여기)에서 확인할 수 있습니다.
어쩌면, 프로그램을 만드는 가장 기본은 기획력일지도 모릅니다. 어떤 프로그램을 어떤 목적성을 가지고, 어떤 구조로 만들지를 정하는 것입니다. 이렇게 구조와 절차를 정한 후, 그에 맞는 외모(QtDesigner)와 코딩(python)을 통해 자신만의 프로그램을 만들어 볼 수 있습니다.