파이썬/GUI 만들기

[PyQt] 기초

토마토농장농장 2021. 12. 21. 16:06

PyQt 는 파이썬으로 GUI를 생성하기 위한 툴키트 중 하나이다. 

 

GUI ? Graphical User Interface. 그래픽 요소를 통해 사용자와 컴퓨터 간에 인터페이스를 구현한 방식. 

 

파이썬에서 GUI를 만드는 방법은 몇 가지 있다. 

 

1. PySimpleGUI 이용

2. PyQt5 이용 (아나콘다 공식 제공)

3. TkInter 이용 (파이썬 기본 제공)

 

 

엑셀 수정 파일은 PySimpleGUI를 이용해서 만들었었다. 

PyQt5가 책도 있고 더 넓게 사용되는 것 같으니 PyQt도 사용해보도록 한다. 

 

Terminal 창에 

pip install pyqt5

 

를 입력해 PyQt를 설치한다. (회사에서 설치 시 명령어 뒤에

아래를 추가해준다. ※ pip 설치 시 SSL Error  참조 )

 

--trusted-host pypi.org --trusted-host files.pythonhosted.org

 

pip install pyqt5-tools

 

를 설치해주면 GUI를 만드는데 유용한 designer.exe 파일을 받을 수 있다고 하는데.. 

설치가 안되고 오류가 떠서 그냥 아나콘다를 받았다 (*아나콘다 설치 시 기본 포함)

회사 컴의 경우

C:\ProgramData\Anaconda3\Library\bin

경로의 designer.exe 를 실행한다.  

 

창 띄우기

import sys
from PyQt5.QtWidgets import *

app = QApplication(sys.argv)
label = QLabel("Hello PyQt")
label.show()
app.exec_()

 

1. sys 모듈 임포트 (별도의 설치 필요 없다.) 

 

2. PyQt5 디렉토리의 QtWidgets 파일에 있는 모든 것 (*) 을 임포트 (C:\Users\M\PycharmProjects\pythonProject\venv\Lib\site-packages\QtWidgets.pyd)

 

3. QApplication 이라는 클래스의 객체를 생성, app라고 명명.  

sys.argv 값은 현재 소스코드에 대한 절대 경로이다.  QApplication 클래스의 인스턴스를 생성할 때 생성자로 이 값을 전달해야함.

 

4. QLabel 이라는 클래스의 객체를 형성.

5. show() 메서드를 통해 창 라벨로 텍스트 출력 

6. app을 무한루프로 실행 (execute - 한번 실행하고 끝나는게 아니라 사용자가 끌 때까지 창을 유지시켜주는 역할)