GUI 제작을 위한 PyQt5의 간단 이해

 

  사실 Intro 직후 기성 ERP 소개와 DIY ERP의 필요성, 제작 구상단계 등에 대해 차근히 풀어나가는 것이 맞겠지만, 이번 카테고리를 통해 가장 시급히 소개하고 싶은 라이브러리가 PyQt5 이기에 가장 먼저 관련 내용을 다루고자 합니다.

 

  GUI.. Graphic User Interface의 약어 인데요. 제 나름의 방식으로 GUI에 대해 요약해 보자면 GUI는 최종 개발이 완료된 프로그램의 사용자가 프로그래밍 언어가 아닌 인간의 언어나 표현방식으로 구성하여 시각화한 개체를 통해 보다 쉽게 해당 프로그램을 구동할 수 있도록 해주는 일체의 시각적 화면표시용 개체들이라고 말씀 드리고 싶습니다.

 

 

 

 

 프로그래밍언어는 컴퓨터라는 기계와 대화하기 위해 작성된 언어입니다. 기계에게 무언가 작동을 요구할 때엔 이 언어를 사용하게 됩니다. 또한, 결과물을 표출할 때에는 해당 언어의 표시방식에 맞추어 표출해 주는 것이 통상입니다. 

아래 파이썬 코드를 예로 들어 보겠습니다. 

a = 1
b = 1

print(a+b)
print(a*b)

이에 대해, 파이참 터미널을 통해서 보면, 아래와 같은 결과를 반환해 줍니다.

 

 

 

 

 

 

이 간단한 결과값을 받고자 함에 있어, 적어도 int 자료형의 값인 1이 a와 b라는 변수에 대입된다는 표현식인  a = 1 과 b = 1이라는 코드라인이 필요하고 마지막으로 내장함수인 print()에 대한 기초적인 문법 사용법을 알고 있어야 합니다.

 

이 말인 즉, 사용자는 프로그래밍언어에서 정한 문법을 알고 있어야 합니다. 하지만, 실상 프로그램은 IT관련 지식이 전혀 없는 사용자를 위해서도 개발되어야 합니다. 대부분의 사용자가 IT지식이 전무한 것이 사실입니다. 저도 여태껏 그래왔으니깐요.  따라서, 사용자를 위해 좀 더 편리한 시각적이고 인간의 일상언어적인 표현법으로 일련의 기계어를 대체하는 것이 필요합니다.

 

윈도우즈 계산기를 열어 보겠습니다.

 

Windows powershell창이라던가 파이참 터미널과 같은 형태는 분명 아닙니다. 다만, 사용자가 내가 원하는 계산을 위한 자료형의 값인 정수형 값들을 표시한 계산기 버튼들이 보입니다. 그리고 산술기호 버튼들이 있습니다. 

 

 사용자가 1 + 2를 하기 위해 1을 누르고 + 버튼을 누른 후 다시 2를 누르고 = 을 누르는 4번의 버튼 press 동작을 통해 계산기는 계산값 결과창에 3의 값을 도출하게 됩니다. 

 

 프로그래밍언어 한번을 쓰지 않고 단지, 버튼 press 동작 4회만으로 원하는 결과값을 얻게 되는 것입니다. 

 그런데, 개발자는 사실 이 버튼 press 동작을 통해 일종의 코드블록이 실행되도록 이미 프로그램에 반영을 해 놓았습니다. 1이라는 숫자버튼을 누르면 해당 시그널을 받아 첫번째 정해놓은 변수에 해당 1 값을 대입하는 코드라인을 생성하도록 했을 것입니다. 다시 + 를 누르면 두번째 코드블록이 돌아서 첫번째 변수에 두번째로 대입되는 변수를 더하는 동작이 선택되도록 할 것이며, 다시 1을 누르면 첫번째와 같은 유형의 코드블록이 돌아서 두번째 변수에 두번째로 대입되는 int값을 배정한 후 마지막으로 =을 누르면 결과값을 표출하도록 하는 코드 블록을 심어 놓았을 것입니다.

 

 

 

 

 이 과정을 파이썬 코드로 매우 단순화 시켜서 보면 얼추 아래와 같을 것입니다.

def button1Clicked():
    global a
    a = 1


def button2Clicked():
    global b
    b = 2


def addClicked():
    global cal
    cal = 'add'


def equalClicked():
    if cal == 'add':
        print(a+b)

 

 먼저, button1Clicked()라는 함수가 정의 되어 1이라는 계산기 버튼을 누르면 해당 함수가 구동되어 a라는 전역변수에 1이라는 값을 배정합니다.  button2Clicked()함수는 2라는 계산기 버튼을 누르면 해당 함수가 구동되어 b라는 전역변수에 2값을 대입합니다. 그리고 +버튼을 누르면 addClicked()라는 함수가 구동되어 cal이라는 변수에 add라는 str값을 대입합니다. 마지막으로 equalClicked()라는 버튼을 누르면 cal이 add라는 str값을 가졌는지 여부를 따져 보고 맞을 경우 a+b의 값을 출력하도록 합니다. 물론, print되는 값은 다시 계산기 GUI상의 계산표시 디지털창에 디지털 숫자형태로 표시되도록 다시 시그널을 보내는 과정이 있지만 해당 부분은 이 이해를 돕기 위한 설명이므로 생략하도록 하겠습니다. 

 

 사용자는 단순히 계산기 상의 버튼을 누르는 과정이지만 개발자는 그 버튼을 누르는 행위에 대한 시그널을 받아서 파이썬 언어로 구성된 함수를 구동토록 할 것이며, 이 함수의 연속된 동작에 따라, 변수에 배정된 값들에 대해 연산을 수행하고 다시 사용자가 알아보기 좋은 형태로 결과값을 표시하는 일련의 과정이 발생되는 것입니다.

 

 따라서, GUI는 저 같은 초보 프로그램 자가개발자에게 있어서 앞으로 이 프로그램을 얼마나 편리하게 사용할 것인가 그리고 나만이 쓰는 것이 아닌, 타인의 사용도 고려할 것인가에 대해서 매우 중요한 의미를 갖습니다. 다같이 쓸 프로그램을 만들 계획이라면 반드시 GUI라는 요소를 빼고서는 프로그램을 만들 수 없기에 GUI 작성은 프로그램 개발에서 매우 중요한 부분을 차지한다 할 것이며, PyQt5는 그러한 GUI작성도구의 하나로서, 파이썬에 dedicated되어 있는 라이브러리이기에 이제부터 매우 익숙해질 필요가 있을 것입니다. 

 

 

 

 

 실제 저도 파이썬 문법만 공부하고 있을 적엔 대체 이런걸 배워서 어떻게 내가 사용하고 있는 일반적인 프로그램들의 형태를 구현한다는 건가에 대한 의문을 늘 품을 수 밖에 없었습니다. 결과를 얻기 위한 과정이나 표출방법 모두 코드라인 안에서 움직이고 터미널에 나타내는 게 고작이었기 때문인데요. PyQt5는 이제 프로그래밍을 하면서 내가 원하는 일반적 형태의 GUI를 갖춘 프로그램으로 완성해 가는 과정을 매우 간단한 방법으로 GUI를 가진 툴을 통해 구성할 수 있도록 도와 줄 것입니다.

 

 

 PyQt5의 설치

그럼 이제 이 글을 읽고 계신 분들은 이미 파이썬 3.X 버전과 파이참과 같은 개발환경은 이미 설치를 완료하셨다는 전제 하에, PyQt5의 설치를 먼저 진행해 보도록 하겠습니다.

 파이썬 콘솔을 이용하신다면 pip명령어를 쓰시면 되시는데, 저는 통상 파이참의 Setttings를 통해 설치를 진행합니다.

 먼저, settings의 project interpreter 카테고리에서 우측의 빨간색 원에 표시된 것과 같은 + 버튼을 눌러주면 설치 가능한 라이브러리를 검색하기 위한 창이 새로 열리게 됩니다. 해당 창에서 빨간색 직사각형 표시된 것과 같이 pyqt5를 입력 후 검색을 진행합니다.

 검색된 라이브러리 모듈 중  PyQt5로 표시된 모듈을 설치해 주시면 됩니다.

 설치 후엔 여러분들의 site-packages 폴더 하위에 QtDesigner라고 하는 폴더가 생성되었는지 확인이 반드시 필요합니다. 정상적으로 설치되었다면 QtDesigner라고 하는 폴더에는 designer.exe라고 하는 실행파일이 담겨 있는데요. 해당 실행 파일이 우리가 GUI를 제작하기 위해 사용하게될 GUI 제작툴입니다.

 아주 편리하게 GUI를 디자인하게 해주는 툴이기 때문에 초보 개발자에게 매우 매우 중요하며, 자주 사용하게 되는 도구이니, 반드시 이 툴이 정상 설치되어 작동되는지 여부를 체크하셔야 합니다.

 

 설치까지 정상 완료되었기에, 이제 다음 part2 포스팅에서 QtDesigner에 대해 살펴 보도록 하겠습니다.

 

 

 

NPU(엔피유) 관세사무소

대표관세사 고장주

Tel) 031-986-7190

E-mail) sales@npucus.com

[NPU관세사무소 프로모션 페이지] https://www.tradenpu.com/npu_cus/

[무역비지니스 인텔리전스 서비스 | TradeNPU] https://www.tradenpu.com

[파이썬 실용 예제. 무역과 공공데이터] https://pdatinmylife.tistory.com

Certified Customs Broker JangJu Goh

Executive Customs Broker @ NPU Customs Consulting

CEO @ JG TradePlus

sales@npucus.com

Trade Compliance / Customs clearance management at foreign company

Working experience of Air export freight forwarding

Data Visualization / Independent development of business automation application – copyright of JGPO_Manager, JG Data Center, AutoCC and etc.

B2B consignment & direct export/import, B2C Overseas Buying Office consulting

Alibaba.com B2B trade / taobao B2C trade / Amazon.com global selling etc. Online trade regulation consulting.

Import license / Quarantine

English communication available

[TradeNPU for partnership proposal - JGTP] https://www.tradenpu.com/jgtp/

반응형

+ Recent posts