Jiwift

[Python/PyQt] Python UI 프로그램 개발환경 구축 본문

다른 개발/Python

[Python/PyQt] Python UI 프로그램 개발환경 구축

지위프트 2022. 12. 28. 16:00
반응형

기존에 벨로그에 작성한 글을 옮김. 

 

 PyQt(PySide)를 공부하면서 배운 정보나 기술을 정리하기 위해서 글을 작성하기 때문에 알고리즘, 글 내용이 부족할 수 있다.

이론 적인 부분은 참고만 하고 PyQt가 어떻게 사용 가능한지 보는 정도로 읽어주시면 감사합니다.

 

잘못된 정보는 바로 댓글로...

 

3줄 요약
1. VSC 설치하기
2. Anaconda 설치하기
3. PyQt 설치하기

주의

- 틀린 내용이 있을 수 있습니다. 
- 사용한 위주로 정리되었습니다.
- 개인적인 용도로 필력 수준이 떨어지고 남들이 보기 불편합니다.
- 코드가 정리되지 못하고 긴게 많습니다.
- 더 좋은 방법은 많습니다.
- 더 좋은 자료 많습니다.

1. PyQt

PyQt란?

 우선 "PyQt" 이름은 기존 Qt(큐트)에서 Python 이름을 합친 것으로 보인다. Qt는 C++에서 사용 가능한 GUI 라이브러리로 시작했다. 크로스플랫폼이 가능하다. 그것을 Python에서 사용하게 나온 라이브러리가 PyQt이다.

PyQt는 Qt를 만든 곳이 아닌 다른 곳에서 Python을 위해서 바인딩한 것이다. Qt를 만든 곳에서 뒤늦게 만든 것이 PySide이며 둘은 다른 라이선스를 적용하고 있다.

 처음에는 PySide가 부족한 면이 있지만 이제는 거의 비슷한 기능을 지원한다고 한다. 코딩할 때도 PyQt자리에 PySide를 입력하면 코드가 동작할 정도로 메서드도 많이 겹친다. 그래서 하나만 배워도 둘 다 사용 가능한 것으로 생각해도 된다.

(간단한 것들은 그렇게 테스트를 해보았는데 아직까지 크게 만든 것을 PySide로 만든 적이 없어서 100% 호환은 장담은 못하겠다.)

 

크로스플랫폼 지원 : Windows, Linux, OSX, Android, IOS
나무위키 혹은 Qt사이트에는 Qt를 사용한 유명한 프로그램 혹은 제품들을 볼 수 있다.

2. 시작하기 전

아나콘다 설치

 아나콘다는 파이썬 프로젝트를 독립된 공간에서 개발할 수 있게 도와준다. 프로젝트마다 독립적으로 라이브러리를 관리할 수 있어서 편하다.  사실 없어도 되지만 여러 가지 프로젝트를 진행한다고 생각했을 때 사용하는 라이브러리나 버전이 다를 수 있음을 생각하고 각자 관리하기 위해서 사용하는 것이 좋다.

 위 내용은 PyQt뿐만 아니라 파이썬을 사용한다면 그냥 쓰자

 

아나콘다 홈페이지 에 접속해서 바로 다운로드 버튼을 눌러도 가능하다.

화면 하단에서 운영체제별로 선택이 가능하다.

대부분 개인적으로 사용할 테니 Juse Me를 선택한다. 

(사실 All Users 선택하면 어떻게 다른지 해본 적 없다.)

경로는 시키는 대로 설정하는 것이 좋다고 판단

 Python을 PATH 등록해주는 것을 체크하면 사용하는데 편리하니 체크. 아래 옵션은 개인적으로 사용 안 해서 선택 안 하는데 각자 알아서 선택하면 된다. 

 설치 완료. 이제 프로젝트마다 환경을 만들어 관리할 수 있는 아나콘다가 설치된 것이다. 이제 Visual Studio Code를 설치하려고 한다.

 

 

VSC 설치

Visual Studio Code 홈페이지에 접속해서 바로 다운로드 가능하다.

VSC 설치는 간단하기에 따로 설명을 추가하지는 않는다.

 

Visual Studio Code를 사용해 프로젝트 가상환경을 생성

일단 터미널을 사용해야 하기 때문에 [상단 터미널 메뉴 -> 새 터미널]을 통해서 VSC상에서 터미널을 열어준다.

conda --version

 터미널에서 콘다 버전을 확인할 수 있다.

 

conda update conda

콘다 업데이트도 진행한다. 

 

conda create --name [가상환경이름] python=[파이썬 버전]

 위와 같이 콘다에서 가상 환경을 생성할 수 있다. 환경 이름과 파이썬 버전을 입력해주면 콘다가 알아서 설치해 준다.

activate TestEnv

 위 명령어를 통해서 내가 생성한 가상환경을 실행시킨다. 여기서 라이브러리를 설치하고 지우고해도 다른 환경은 영향을 받지 않는다.

가상환경은 실행, 종료, 삭제, 생성 가능한다. conda 사용법을 익혀서 편리하게 사용하는 것이 좋아 보인다.

PyQt5 설치

pip install PyQt5

작성된 글은 PyQt5를 기준이다.

PyQt6 설치

pip install PyQt6

 

3. Qt Designer 

Qt Designer 실행

designer

 터미널 창에서 위 명령어를 실행하거나 설치된 프로그램 속에서 찾아서 실행하면 된다.

창 생성

 qt designer 실행한 모습이다.

 새로운 윈도우를 만들어주기 위해서 [파일 - 새폼] 메뉴를 클릭한다.

원하는 폼을 선택한다. 처음에는 보통 'Main Window'를 선택해 준다.

 

구역 설명

1. 생성된 폼

2. 사용 가능한 위젯 모음

3. 생성된 폼에 추가된 위젯

4. 스타일 설정

 

4. 시작

준비 코드

import sys

from main import MainWindow
from PyQt5 import QtWidgets

if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    window = MainWindow()
    app.exec_()

- run.py

 메인 코드를 불러오기 위해서 실행되는 코드, 굳이 필요는 없다. 하지만 나는 사용

 

from PyQt5 import uic
from PyQt5.QtCore import Qt

from PyQt5.QtWidgets import QMainWindow

form_class = uic.loadUiType("./ui_main.ui")[0]

class MainWindow(QMainWindow, form_class):
    def __init__(self):
        super(MainWindow, self).__init__()
        self.setupUi(self)
        self.show()

- main.py

메인 부분. ui를 연결하고 코드를 실행하고 등등

 

기타 사항

특수한 위젯만 사용 가능한 메서드가 아니면 다양하게 적용 가능합니다.
ex) text(), setText(), clicked 등등

프레임(틀) 기능하는 위젯 안에는 다른 위젯을 추가로 넣을 수 있습니다.
ex) layout, frame, groupbox, stacked Widget 등등

프레임 안에 위젯을 넣을 경우 스타일 적용할 때 구분을 잘해야 함

 

반응형