PyQt5 모듈을 이용하여 기본적인 GUI 코딩을 해봤으므로, 본격적으로 PyQt5를 익혀보도록 하겠습니다.
먼저, PyQt5를 이용해 GUI 프로그램이 어떤 프로세스로 흘러가는지 알아봅시다.
앞서 작성했던 프로그램은 Qt 프로그래밍의 가장 기본적인 코드입니다.
Qt 를 이용하여 GUI 프로그램을 개발하기 위해서는 필수적으로 QApplication 이라는 인스턴스를 하나 생성해야합니다. QApplication 이라는 인스턴스가 존재하지 않으면, Qt 프로그램은 동작을 하지 않습니다.
QApplication 인스턴스를 생성하였다면, GUI 화면을 구성합니다. 그리고 exec_() 함수를 호출하는데요.
exec_() 함수는 유저가 종료 입력을 하기 전까지 어플리케이션을 실행합니다.
이는 GUI 프로그램의 특징이라고 할 수 있습니다. GUI프로그램은 사용자가 종료하기 전까지 계속 프로그램이 실행 중인 상태입니다. 계속 프로그램이 구동 중이면서 사용자의 이벤트를 기다리고 있습니다.
어떤 책들에서는 이를 이벤트 루프(event loop)라고 표현을 하기도 합니다. 조금 더 개발자스럽게 표현을 한다면, 이벤트를 리스닝 중이라고도 표현 할 수도 있을거 같습니다.
기본적인 GUI 코드를 이해했다면, 조금 더 복잡한 GUI 프로그램을 한 번 코드를 짜보겠습니다.
먼저 MainWindow 를 하나 생성하고, 메인 윈도우에 메세지 박스를 출력하는 버튼 하나, 프로그램 종료 버튼 하나를 추가해 보겠습니다.
MainWindow는 QMainWindow 라는 위젯을 상속 받아 생성하고, Constructure에서 윈도우의 크기를 설정 해줍니다.
다음은 QPushButton 이라는 위젯을 이용해 버튼을 하나 생성하고, 버튼을 클릭했을 때 실행되는 이벤트 함수를 연결해줍니다.
버튼을 하나 더 생성하고 종료 이벤트 연결해 줍니다.
QPushButton 위젯의 move 함수를 이용해 메인 윈도우상에 위치를 각각 20,20 / 20. 60 에 위치시켰습니다.
그리고 버튼1에 연결시킨 이벤트 함수 btn1_click 을 클래스의 method 로 구현합니다.
자, 이렇게 GUI 어플리케이션의 구성을 마쳤으면, 이제 GUI 프로그램을 실행시켜야겠죠?
위에 설명했던 내용처럼 QApplication 인스턴스를 생성하고, 우리가 구성한 GUI 어플리케이션(baseWindow) 인스턴스도 생성하여 화면에 보여줍니다.
이제 실행을 해볼까요?
메인 윈도우 안에 버튼 두 개가 성공적으로 나타난 것이 보입니다! 👏👏👏👏
클릭 버튼을 눌렀을 때, 메세지 박스도 정상적으로 나타나는 것을 볼 수 있습니다.
이렇게 오늘은 조금 더 본격적으로 PyQt 에 익숙해져 보기위해 코드를 좀 짜봤습니다.
GUI 어플리케이션 코딩에 조금 더 관심이 있으신 분들은, 파이썬 위키를 읽어보시면 도움이 될겁니다.
- QLabel
- QComboBox
- QCheckBox
- QRadioButton
- QPushButton
등등.. 다양한 위젯들의 가이드를 보실 수 있습니다.(링크)
다음 번에는 PyQt를 이용해 키움증권 API를 연동해보겠습니다.
'코딩log > 알고리즘 트레이딩 시스템 구축' 카테고리의 다른 글
PyQt5로 키움증권 Open API 로그인 연동하기 -1 (0) | 2022.12.20 |
---|---|
PyQt5 연결 import 오류 해결 및 PyQt5 익히기 - 1 (0) | 2022.12.11 |
댓글