관리 메뉴

Value Creator의 IT(프로그래밍 / 전자제품)

#100 파이썬에서 QT 활용하기 (PyQT 기반 GUI) 본문

1. 프로그래밍/3) QT

#100 파이썬에서 QT 활용하기 (PyQT 기반 GUI)

valuecreatort 2021. 7. 11. 01:05
반응형

핵심요소

1. 화면에 출력되는 UI : 위젯 클래스의 객체로 생성

2. 이벤트 루프 : QApplication 객체에서 exec_ 메서드를 호출해 이벤트 루프 생성

3. 이벤트 처리 함수 또는 메서드 구현 : 예를 들어 버튼 클릭 이라면 위젯은 'clicked'라는 '시그널' 발생, 사용자는 '시그널' 발생시 호출되는 함수 또는 메서드를 구현해야 함. 함수 또는 메서드를 QT에서는 '슬롯' 이라고 부름. '슬롯'은 다른 프로그래밍 언어에서는 '콜백 함수'라고 표현함.

즉, '시그널'과 '슬롯'을 연결해주면 됨.

예시)

사용자 : 마우스 클릭 

위젯 : 클릭 시그널 발생

이벤트 루프 : 클릭 시그널에 대한 이벤트 수행, 슬롯 호출

슬롯 : 사용자가 미리 구현해 놓은 함수 실행

 

사용자 -> 위젯 -> 이벤트 루프(조건부 반복) -> 슬롯

 

이벤트 루프는 사용자가 윈도우를 닫을 때까지 실행되면서 시그널 처리 및 슬롯 호출을 담당함.

 

주의사항 : 슬롯의 구현과 시그널-슬롯 연결이 이벤트 루프 생성 app.exec_ 메서드 호출보다 먼저 수행되어야 함.

 

자식 클래스인 MyWindow가 부모 클래스인 QMainWindow를 상속받으면 QMainWindow 클래스에 정의된 모든 메서드나 프로퍼티를 사용할 수 있습니다. 

 

 

QT Designer 활용하기

코드를 일일이 짜서 UI를 구현하는 것은 매우 번거롭다.

UI 구성을 위한 전용 도구인 QT Designer를 사용하면 편리하다.

QT GUI 설계를 위지윅 방식으로 할 수 있다.

 

 

QT Designer 실행 경로

C:\Anaconda3\Library\bin\designer.exe

 

QT에는 Dialog와 Main Window, Wigdets 세 가지 종류의 GUI가 있다. 

보통 Main Window를 많이 사용한다.

 

작성한 .ui 파일을

C:\Anaconda3\Lib\site-packages\PyQt5\uic라는 디렉터리로 복사합니다.

 

C:\Anaconda3\Lib\site-packages\PyQt5 디렉터리에서 uic 디렉터리를 선택한 후 Shift 키를 누른 상태에서 마우스 오른쪽 버튼을 클릭합니다. 메뉴가 나타나면 [여기서 명령 창 열기] 메뉴를 선택합니다.

 

 

 python -m PyQt5.uic.pyuic -x mainwindowtest.ui -o main_window.py 

 

C:\Anaconda3\Lib\site-packages\PyQt5\uic 폴더 안에 main_window.py 파일이 생긴다.

 

또는 아래 처럼 해주면 py로 변환하지 않고 .ui 파일을 그대로 가져다 사용할 수 있다.

 

 

 

 

 

 

 

반응형
Comments