파이썬(python)은 참 다재다능한 언어입니다. 파이썬은 객체지향 프로그래밍 언어로 전세계에서 많은 인기를 얻고 있습니다. 직관적이며, 언어의 규칙, 내용을 이해하기가 용이하기 때문입니다.
이미 파이썬을 접해봤거나 이용해본 사람이라면 여러 방면으로 활용하고 있을 것입니다. 일상에서 혹은 업무에서 파이썬은 다양하게 이용할 수 있습니다. 파이썬으로 할 수 있는 것은 어떤 것이 있을까요.
우리가 상상하는 거의 모든 것을 파이썬으로 할 수 있습니다. 기본적으로 윈도우 혹은 맥에서 구동할 수 있는 프로그램을 만들 수 있습니다. 또한, 많은 사람들이 좋아하는 게임을 만들 수도 있습니다. 이런 부분은 pc에 국한된 것이기도 하죠.
스마트폰에서는 어플리케이션, 줄여서 앱을 이용하게 됩니다. 파이썬을 이용해 안드로이드 앱을 개발할 수도 있습니다. 또한, 웹 서비스를 만들어 활용할 수도 있습니다. 다양한 프레임워크와 라이브러리를 이용하면 됩니다.
본 게시글의 주제는 [파이썬 윈도우 프로그램]입니다. 국내에서는 윈도우를 사용하는 경우가 많기에 윈도우를 지칭했지만, 맥os에서도 사용할 수 있는 프로그램을 만드는 것입니다.
파이썬으로 윈도우 프로그램 만들기 – pyqt, qtdesinger
파이썬은 하나의 스크립트 혹은 다수의 스크립트를 작성하고, 코드를 실행할 수 있습니다. 단순하게 파이썬 에디터에서 실행해 볼 수도 있습니다. 또는, console에서 스크립트를 실행하여 결과를 확인할 수도 있습니다. while문 혹은 for문을 이용해 반복적인 작업을 진행할 수도 있습니다.
[win32api]라는 라이브러리를 연결하면, 윈도우 백그라운드에서 실행되는 스크립트를 만들 수 있습니다. pyinstaller 라이브러리를 이용하면 작성한 스크립트를 exe파일로 만들어 활용할 수도 있습니다. 다재다능한 만큼 복잡하게 느껴질 수 있습니다. 사용자의 분명한 목적성이 필요합니다.
위에서 언급한 것은 단순히 스크립트를 실행하고 활용하는 방법입니다. 즉, 사용자가 조작할 수 있는 인터페이스가 없는 상태입니다. 각각의 기능을 버튼에 연결하고, 결과를 출력하는 등의 인터페이스를 만들어줘야 합니다. 단순히 실행하고 결과만을 원한다면 굳이 인터페이스는 필요없겠죠. 하지만, 원하는 작업을 위해 조작이 필요한 경우도 있습니다. 이런 경우, 인터페이스를 만들어 연결하면 됩니다.
파이썬에 인터페이스를 만들어주는 방법은 크게 2가지의 라이브러리를 활용하게 됩니다.
- pyqt – https://www.riverbankcomputing.com/software/pyqt/intro
- tkinter – https://docs.python.org/ko/3/library/tkinter.html
- 위 두가지의 라이브러리를 활용해 gui를 생성하고 스크립트를 실행, 조작할 수 있습니다.
개인의 취향이 서로 다르듯 자신에게 더 잘 맞는 라이브러리는 존재합니다. 개인적으로 pyqt를 선호합니다. 조금 더 직관적인 모습을 보인다고 생각하는데요. 그 이유는 QtDesigner 이라는 프로그램이 있기 때문입니다.
Qt Designer 이란.
코딩을 진행하는 것은 직관적인 것과 거리가 있습니다. 단순히 규칙에 맞게 명령어들을 나열하고 원하는 결과가 나올 수 있도록 글을 쓰는 것과 같습니다. 단지, 그 글의 내용을 알고, 원하는 결과로 가게 만들기 까지 적지 않은 노력이 필요할 수 있습니다.
pyqt 혹은 tkinter를 이용해 gui를 형성하는 것도 이런 명령어들을 나열해 만들어야 합니다. 물론, 에디터에 따라 적절하게 결과를 중간에 확인하는 방법도 있습니다. 대표적으로 jupyter notebook이 있습니다. 또는 사용자의 활용 방법에 따라 확인할 수도 있습니다.
물론, 많은 경험을 누적한 숙련자의 경우 위에서 언급한 확인이 필요 없는 경우가 많습니다. 그만큼 익숙해진 전문가라는 것이겠죠. 영화에서 보는 것 처럼 긴 내용을 거침없이 작성하는 모습을 상상할 수도 있겠습니다. 하지만, 우리는 그렇지 않겠죠. 익숙해지는데 걸리는 시간을 절약할 필요가 있습니다.
gui의 외모를 미리 설정한 후, 원하는 기능을 구현한 코드와 연결할 수 있다면 도움이 될 것입니다. 이런 부분을 가능하게 해주는 것이 바로 Qt Designer라는 프로그램입니다.
Qt Designer 둘러보기.
여기서는 가볍게 Qt Designer 프로그램을 둘러보도록 하겠습니다. 파이썬을 설치하면 기본적으로 에디터도 포함되어 있습니다. 메모장 보다 조금 더 나은 정도라 처음 익숙해지는 것에 어려움이 있을 수 있습니다. 다양한 기능들을 제공하는 별도의 에디터를 사용하게 됩니다.
- 파이썬 에디터들
- vscode
- sublime text
- anaconda – jupyter notebook
- pycharm
- 위 항목을 선택하면 관련 공식 사이트로 연결됩니다.
이런 에디터들 중 Qt Designer가 기본으로 설치되는 것이 있습니다. 아나콘다(anaconda)를 설치하면 됩니다. jupyter notebook도 함께 설치되기 때문에 도움이 되기도 합니다. 다만, 최종적으로 py파일을 만들어 활용하기 위해서는 메모장, 파이썬 에디터들 중 하나를 사용할 필요는 있습니다.
별도로 Qt Designer 프로그램을 설치할 수도 있습니다. [Qt Designer 다운로드]를 이용하면 됩니다. 개인적으로 아나콘다와 함께 별도의 에디터를 사용하는 것을 추천합니다.
Qt Designer 모습
Qt Designer를 실행하면 위 사진과 같은 모습을 볼 수 있습니다. 이렇게 보면 코딩과는 관련이 없는 프로그램이라는 생각이 들지도 모르겠습니다. 필자가 처음 접했을 때의 느낌이었습니다.
Qt Designer를 이용해 윈도우 혹은 맥os에서 구동할 프로그램의 모습을 꾸며주게 됩니다. 여기에는 버튼의 위치, 달력, 시계, 입력 부분, 출력 부분 등이 포함됩니다. 원하는 기능을 코딩하기 전, 프로그램의 외모만 꾸며 놓는 것입니다.
프로그램의 배치가 끝나면, 원하는 기능의 코드를 작성한 후 ui파일과 연결하여 테스트를 진행합니다. 이는 복잡한 프로그램을 만들 수도 있다는 것을 의미합니다. (ui는 Qt Designer 프로그램의 저장된 파일 확장자 이름입니다.)
Qt Designer 필요할까.
pc에서 구동하는 프로그램을 만든다면 Qt Designer를 이용하면 많은 도움이 될 것입니다. 다만, 대세는 스마트폰이기 때문에 수요는 크지 않을 수 있습니다. 개인적인 용도 혹은 소규모 프로젝트에 적합할 수 있습니다. 복잡한 프로그램을 만든다는 것은 오랜 시간이 걸릴 것이며, 그 시간을 투자한 결과(이익)을 얻지 못할 수도 있기 때문입니다.
그 부분은 개인이 판단해야만 할 부분입니다. 중요한 것은 필요에 따라 선택하면 좋을 것 입니다. 구글에서 Qt Designer에 대한 이미지를 검색하면 다양한 모습을 볼 수 있습니다.
또는 유튜브를 통해서도 여러 프로그램을 볼 수 있습니다. 이미 상당히 많은 사람들이 복잡하고 멋진 프로그램을 만들어 정보를 공유하고 있기 때문입니다.
Qt Designer 꾸미는 방법, CSS.
Qt Designer를 처음 접하면 삭막하다는 생각이 듭니다. 대부분 직사각형이며, 회색을 띄고 있습니다. 우리가 아는 프로그램은 이렇게 삭막하진 않을 것입니다. 결국, 적당히 모양, 색상, 효과 등을 꾸며주어야 합니다.
이렇게 원하는 모양으로 꾸며주기 위해서는 CSS에 대한 기본적인 지식이 필요합니다. CSS는 웹페이지의 외관을 담당하는 명령어들을 나타냅니다. 해당 명령어의 일부는 Qtdesigner에서도 적용할 수 있습니다.