본문 바로가기

코딩/Python

[Python/파이썬] PyQT5 및 QT Designer 소개, .ui 파일 .py로 변환 방법

반응형

※ 이 글을 쓰는 사람은 SW 비전공자입니다.

※ 개인 공부를 위해 정리하는 글이며, 작성한 코드들은 효율성, 깔끔함(?) 등과는 거리가 멀 수 있습니다.

 

1편 : 2021.03.06 - [코딩/Python] - [Python/파이썬] PyQT5 및 QT Designer 소개, .ui 파일 .py로 변환 방법

2편 : 2021.03.28 - [코딩/Python] - [Python/파이썬] PyQt5를 통한 GUI 구성 및 사용법 이해하기

3편 : 2021.03.29 - [코딩/Python] - [Python/파이썬] PyQt5 사용시 필요한 쓰레드 개념 이해 - 1

4편 : 2021.03.30 - [코딩/Python] - [Python/파이썬] PyQt5 사용시 필요한 쓰레드 개념 이해-2 (GUI 응답없음 해결)

5편 : 2021.07.19 - [코딩/Python] - [Python/파이썬] PyQt5 - 시그널(Signal)과 슬롯(Slot) 개념

6편 : 2021.07.22 - [코딩/Python] - [Python/파이썬] PyQt5 - 사용자 정의 시그널(Custom Signal)과 Emit 사용법


1. PYQT5

  기존에는 Tkinter라는 파이썬 내장 모듈을 사용했었는데 프로그램을 사용하는 유저입장에서 사용하기 불편하기도 하고 프로그램다운 프로그램을 만들어보고 싶다는 생각에 PYQT5를 공부하기로 했다. Tkinter의 경우 소수의 메뉴만 사용한다면 유익한 툴이지만 다뤄야 할 메뉴(제어해야할 요소)가 많아지면 PYQT같이 유저가 쉽게 알아볼 수 있고 선택할 수 있는 툴이 필요하다.

   PYQT에 대해 구글링해보니 원래 C++에서 사용하던 QT라는 도구가 있었다고 한다. 이 QT를 파이썬에서도 사용할 수있게  만들어준 것이 PYQT라고 한다.

 

1)QT Designer 소개

  QT Desingner는 파이썬에서 PYQT를 사용할 때 레이아웃을 직관적으로 편집할 수 있는 편집기이다. 여러 블로그에서 설치 및 실행방법에 대해 잘 설명하고 있어서 자세한 부분은 정리하지 않으려 한다. 개발환경이 Anaconda라면 Anaconda prompt를 통해 QT Designer를 실행할 수 있는 것 같다.(자체 내장되어 있는 프로그램인지는 잘모르겠음)

Anaconda Prompt 검색

 

Anaconda Promprt 창에 'designer' 라는 단어를 치면 자동으로 QT Designer가 실행 된다. 아래와 같은 프로그램이  실행 된다.

< QT Designer 실행 >

 

 

2)QT Designer 기본 사용 방법

  PYQT에 대해 위키독스 전자책이나 개인블로그에 잘 정리해주신 분들이 많아 따로 포스팅을 할 필요는 없을 것 같다. 다만, 어떤 원리로 동작을 하는지는 정리하고 넘어가려고 한다.

이번 포스팅에서는 임의의 레이아웃을 구성하고 파이썬과 연동시키는 방법까지 정리할 것이다.

QT Designer를 사용하여 아래와 같이 임의의 레이아웃을 구성해보았다. 

<임의의 레이아웃 구성>

 

레이아웃을 구성 후 유저가 보는 화면으로 미리보기 하고 싶다면 아래 상단메뉴-폼-미리보기를 하면 된다. (단축키 : 컨트롤 + R)

미리보기 매뉴 미리보기 결과

 


구성해 놓은 레이아웃을 파이썬과 연동시키는 방법에는 2가지가 있다.

 

  1) .UI 파일을 직접 파이썬에서 Import하여 포함시키는 방법

 

  2) .UI 파일을 직접 파이썬 코드로 변환하여 파이썬 프로그램에 포함시키는 방법

( ※ .UI파일은 QT designer에서 레이아웃을 저장할 때의 확장자이다.)

 

1번의 경우 위키독스 책자 중 '초보자를 위한 Python GUI 프로그래밍 - PyQT5'에서 설명을 하고있어서 내용을 생략하고 참고링크를 기재함.

참고링크 : wikidocs.net/35482#qt-designer-ui

 

위키독스

온라인 책을 제작 공유하는 플랫폼 서비스

wikidocs.net

 

2번의 레이아웃 .UI 파일을 파이썬 코드로 변환하는 방법을 정리해보았다.

먼저 위에서 임의로 구성한 레이아웃 파일을 QT Designer에서 'test_pyqt.ui'라는 이름으로 저장하였다.

.UI 파일 저장 test_pyqt_ui 파일 저장

 

  참고로 test_pyqt.ui 파일 연결 프로그램을 메모장으로 해보면 아래와 같은 XML 코드를 확인할 수 있다. QT designer에서 수정이 안되는 부분도 있어 XML 파일로 직접 접근하여 수정하는 방법도 있다고 한다. 이 방법은 나중에 필요할 때 정리할 예정이다.

< test_pyqt.ui 파일 메모장으로 실행시 >

 

위 xml파일을 파이썬 코드(.py)로 변환시키는 방법은 Anaconda prompt에서 변환 명령어를 입력하면 된다.


pyuic5 -x 실행파일 경로\파일명.ui -o 결과파일 경로\파일명.ui

 


< Anaconda Promprt 창에 명령어 입력 >

 

위 명령어를 치면 아래와 같이 .py 확장자 파일이 1개 생성된 것을 확인할 수 있다. 

<결과>

 

test_pyqt.py파일을 실행해보면 파이썬 코드를 확인할 수 있고 Run을 해보면 QT designder에서 레이아웃 구성한대로 실행되는 것을 확인할 수 있다.

<test_pyqt.py 코드>

 

728x90