1. Concept
파이썬의 GUI 라이브러리 중 하나인 PyQt를 이용한 GUI 프로그램 구현입니다. QT-Designer를 통해 UI를 만든 다음 Python 코드로 쉽게 연동해보도록 하겠습니다.
2. SourceCode
1. 가상 환경 구축 및 Spyder 설치
# 가상환경 생성 [python 3.8버전]
conda create -n py38_qt python==3.8
# 가상환경 실행
activate py38_qt
# Spyder + QT 설치
conda install spyder
Spyder를 설치하면 GUI 구현을 위한 의존성 패키지가 함께 설치되므로 편리합니다. 설치가 완료되면 콘솔 창에 designer를 입력 후 엔터를 눌러 qt-designer를 실행합니다.
2. Qt-Designer를 이용한 Simple UI 제작
Qt-Designer의 초기화면에서 Main Window를 클릭해주면 기본적인 UI 제작을 위한 Form이 생성됩니다. 생성된 Form에는 메뉴바와 상태바가 포함되어 있습니다. 아직은 불필요하니 우클릭 또는 우측의 객체 탐색기에서 해상 객체를 삭제해줍니다.
간단한 타이머 구현을 위해 좌측에 있는 위젯 상자에서 LCD Number 위젯을 클릭 후, 작성 중인 Form에 드레그 해줍니다. 위치와 크기는 지정된 이후에도 마우스나 우측의 속성 값을 통해 수정할 수 있습니다. 현재 위치가 애매하므로 레이아웃 설정을 통해 전체 form에 맞게 반응형으로 변경해줍니다.
익숙해지기 위해 다양한 위젯이나 레이아웃 등을 추가하면서 연습하시는 것도 좋습니다. 모든 작업이 완료되었다면 Python 연동을 위해 코드를 작성중인 경로에 배치가 완료된 Form을 저장해줍니다.
3. Python GUI 코드 작성
# -*- coding: utf-8 -*-
"""
@author: Deep.I Inc. @Jongwon Kim
Revision date: 2020-12-30
See here for more information :
https://deep-eye.tistory.com
https://deep-i.net
"""
import sys
from PyQt5 import uic
from PyQt5.QtWidgets import QMainWindow,QApplication
# Designer로 만든 UI 경로지정
FROM_CLASS = uic.loadUiType("ui.ui")[0]
# GUI CLASS 생성
class Windows(QMainWindow,FROM_CLASS):
def __init__(self):
super().__init__()
# UI 설정
self.setupUi(self)
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ShowApp = Windows()
sys.exit(app.exec_())
파이썬에서 UI를 작성할 수도 있지만, 프로그램이 난잡해 지기 때문에 저는 Designer를 통해 [UI 파일 제작 <-> 파이썬 코드로 백엔드 작업] 의 프로세스를 선호하고 있습니다.
3. Application
Your Best AI Partner DEEP.I
AI 바우처 공급 기업
객체 추적 및 행동 분석 솔루션 | 제조 생산품 품질 검사 솔루션 | AI 엣지 컴퓨팅 시스템 개발
인공지능 프로젝트 개발 외주 및 상담
E-mail: contact@deep-i.ai
Site: www.deep-i.ai
'Python > PyQt' 카테고리의 다른 글
[Python] PyQt에서 마우스 버튼 클릭 반응형 효과 만들기 (0) | 2021.03.12 |
---|---|
[Python] PyQt5에서 URL 링크 만들기 (하이퍼링크 버튼) (0) | 2021.02.23 |
[PyQt] 제목 표시줄 없는 Widget을 마우스로 이동시키기 (0) | 2020.12.30 |
[Python] PyQt5 리소스 파일 Import error 해결 방법 "No module named 'icon_rc'" (0) | 2020.12.01 |
[Python] PyQt 에서 로딩(애니메이션) 화면 구현하기 (2) | 2020.11.23 |