pyqt5를 통해 간단한 GUI 프로그램 만들 수 있음.
1) GUI 객체들의 속성을 코드로 입력하여 사용
- ui 파일과의 연계 불필요, 그러나 사소한 속성까지 설정해야 함.
2) Qt Designer 통해 생성한 ui 파일을 python파일로 변환하여 사용
- 손쉽게 ui 작성한 후 py으로 변환하여 사용, 그러나 수정 시 매번 변환해서 사용해야 함.
3) Qt Designer 통해 생성한 ui 파일을 class 형태로 로드하여 사용 ✔
- ui 파일 수정사항이 바로바로 적용되나, 세부 속성을 반드시 Qt Designer 통해서만 확인
# ui 파일을 class 형태로 변환하는 부분
path= r' '
from_calss=uic.loadUiType(path)[0]
- uic.loadUiType() 통해 ui 파일을 class 형태로 변환
- form 클래스, Qt base 클래스로 이루어진 튜플
[반환값] tuple(object, object)
- loadUiType()[0]: Ui_MainWindow 클래스 (화면구현) ✔
- loadUiType()[1]: PyQt5.QtWidgets.QMainWindow (Qt Designer로 디자인 하기 전, 선택했던 템플릿 클래스)
class WindowClass(QMainWindow, from_calss):
def __init__(self): #생성자
super().__init__()
self.setupUi(self)
...
- WindowClass 생성
- QMainWindow와 Qt Designer에서 만든 화면 객체 from_class를 상속받음
- setupUi(self): setupUi()에 QMainWindow 객체를 세팅하여 UI 생성
※ QMainWindow 를 통해 윈도우를 만들 수 있다.
# 참고: https://engineer-mole.tistory.com/190
if __name__ == "__main__":
app= QApplication(sys.argv)
myWindow=WindowClass()
myWindow.show()
app.exec_()
- QApplication 객체를 통해 exec_ 메서드 호출하여 이벤트 루프 생성
- QApplication에 sys.argv를 전달하는 이유는, Qt 관련 커맨드 인자를 Qt에 전달하여 Qt구성을 변경할 수 있도록 하기 위해서.
#참고: https://webnautes.tistory.com/1727
버튼 위젯 클릭 시 해당 위젯은 CLICKED 시그널 발생
해당 시그널 발생 시 호출되는 함수를 구현함으로서 이벤트 처리 (해당 함수를 슬롯이라고 함)
btn.clicked.connect(clicked_slot)
'프로그래밍 > python' 카테고리의 다른 글
[python] 정규표현식 라이브러리 re, 그 활용 예제 (0) | 2022.10.27 |
---|---|
[python] schedule 라이브러리, 주기/시간 설정 방법 (5) | 2022.10.27 |
[python] pyautogui 라이브러리 기능들 (0) | 2022.10.26 |
[python] qrcode 모듈 사용 중 "No module named 'Image'" 예외 발생 (0) | 2022.10.11 |
[python] socket 모듈로 내부 IP 확인하기. socket(), getsockname(), gethostname(), 정규표현식 (1) | 2022.10.11 |