PyQt5 모듈 추가
PyQt5는 파이썬의 GUI 라이브러리이다.
Qt 애플리케이션 프레임워크를 위한 Python 바인딩 세트이며
Windows, macOS, Linux, iOS 및 Android를 포함하여 Qt가 지원하는 모든 플랫폼에서 실행된다고 한다.
PyQt5 모듈을 이용해 cmd창에서 실행했던 백업 스크립트를 GUI 환경에서 백업 기능을 사용할 수 있도록 변경하였다.
PyQt5로 GUI를 구성하기 위해 QtWidgets 모듈 안에 있는 해당 클래스들을 import하였다.
위 코드가 GUI창을 띄우기 위한 코드이다.
189LINE에 __name__ 변수는 현재 모듈의 이름이 저장되는 내장 변수이고 기본 값은 __main__이다.
창을 띄우기 위해서 QApplication 클래스를 생성해야하는데,
이 QApplication객체는 위젯의 초기화 처리나 이벤트 처리를 수행하는 역할을한다.
이 객체를 생성하면 해당 파이썬 파일을 어플리케이션으로 실행을 해준다.
Main클래스는 위젯 창을 어떻게 표시할지 구성한 클래스이다.
위젯을 구성하기 위해 QWidget 클래스를 상속받고
__init__(self) 초기화 함수를 통해 GUI 초기화를 해줘야한다.
self는 위젯을 구성하는 Main객체를 담고있다.
위젯 창 구성
125LINE에 configUi()가 위젯 창을 구성하는 함수이다.
먼저 QGridLayout()객체를 위젯의 레이아웃으로 지정하여
요소들을 특정 행과 열에 배치할 수 있도록 설정하였다.
위 코드는 위젯에 사용될 요소들을 선언한 부분이다.
QLineEdit - 문자열을 입력할 수 있는 요소
QPushButton - 버튼 요소
QTextEdit - 텍스트 편집기 요소
QTextEdit는 백업 함수가 실행되면서 로그를 찍는 용으로 추가한 요소이다.
이 요소들을 선언할 때 첫번째 인자로 문자열을 넣으면 요소의 기본 값이나 표시되는 값을 지정할 수 있다.
위젯 창에 선언했던 요소들을 배치하는 부분이다.
자주 안변하는 라벨같은 요소들은 배치하는 시점에 생성해서 넣도록 하였다.
그리드 레이아웃의 요소 배치방법은 addWidget(요소, 행, 열)로 배치 하면 된다.
만약 행이나 열을 merge 하여 요소가 배치되길 원하면 159LINE처럼
시작 행, 열, 끝 행, 열 값을 인자로 선언하면 merge되어 요소가 배치된다.
버튼 요소를 클릭했을 때 해당 함수들이 호출되도록 지정한 부분이다.
예를 들어 findBackupDirBtn을 클릭하면 findBackupDir함수가 호출되어
파일 탐색기를 띄워 폴더를 선택하면 해당 폴더의 경로 값이 전역변수인 backupDir로 저장되고,
경로 값이 위젯의 입력요소에 표시되는 구조이다.
위젯의 구성이 끝나고, 위젯을 화면에 보여주는 부분이다.
setWindowTitle() - 위젯 창의 제목을 설정
resize() - 창의 사이즈를 지정(width, height)
show() - 위젯을 화면에 보여주는 함수
RESULT
'Python' 카테고리의 다른 글
[Python] 6. 파일 자동 백업 소프트웨어 만들기 (0) | 2022.01.28 |
---|---|
[Python] 5. 파일 자동 백업 소프트웨어 만들기 (0) | 2022.01.24 |
[Python] 3. 파일 자동 백업 소프트웨어 만들기 (0) | 2022.01.16 |
[Python] 2. 파일 자동 백업 소프트웨어 만들기 (0) | 2022.01.10 |
[Python] 1. 파일 자동 백업 소프트웨어 만들기 (0) | 2021.12.31 |