-
[PyQt5] 2. Hello World!Python/PyQt5 2021. 5. 18. 19:30반응형
import sys from PyQt5.QtWidgets import * app = QApplication(sys.argv) label = QLabel('Hello World!') label.show() app.exec_()
https://github.com/pycrawling/pyqt5_study/blob/main/pyqt5_study_02.py
위 코드를 실행(shift+F10)하면 아래와 같은 조촐한 화면이 나옵니다.
1. sys와 sys.argv
import sys print(sys.argv) # ['C:/PyApp/qt_demo/main.py']
sys.argv는 실행파일의 옵션을 받을 때 사용합니다.
문자열 list 형식으로 들어오는데요.
GUI 프로그램을 작성할 때 sys.argv를 사용할 일이 많지 않습니다.
그리고, QApplication는 인자(argument)로 리스트를 받음을 알 수 있습니다.
사용하지 않는 다면 빈 리스트를 QApplication의 인자로 넣어줘도 되겠죠.2. import
from PyQt5.QtWidgets import *
PyQt5의 QtWidgets 아래에 있는 것을 모두 불러오라는 뜻입니다.
파이썬의 패키지 개념을 이해한다면 다음과 같이 쓸 수도 있겠죠.
from PyQt5 import QtWidgets app = QtWidgets.QApplication([]) label = QtWidgets.QLabel('Hello World!') label.show() app.exec_()
from PyQt5.QtWidgets import QApplication, QLabel app = QApplication([]) label = QLabel('Hello World!') label.show() app.exec_()
from PyQt5.QtWidgets import * app = QApplication([]) label = QLabel('Hello World!') label.show() app.exec_()
3. QApplication과 exec_()
QApplication 클래스는 이 GUI 전체를 관리하며,
exec_()는 이벤트 루프를 돌리게 됩니다.4. 위젯들
QApplication과 exec_() 사이에는 GUI에 포함될 위젯들이 있습니다.
위의 예에서는 QLable을 넣어주었는데요.
간단하게 코드를 작성하기 위해 넣어본 것입니다.일반적으론 QWidget, QDialog, QMainWindow을
최상위 위젯으로 사용합니다.셋의 차이는 다음을 참고합시다.
지금은 '약간 차이가 있다'는 것만 이해하셔도 충분합니다.
https://coding-chobo.tistory.com/33작은 규모의 GUI라면,
QWidget을 사용하시면 됩니다.Qt Designer를 실행하면,
'Widget', 'Dialog', 'Main Window'로 시작하는 것을 볼 수 있습니다.PyQt5-tools를 설치했다면 Designer는 다음 경로에 있습니다.
[프로젝트 폴더]\venv\Lib\site-packages\qt5_applications\Qt\bin\designer.exefrom PyQt5.QtWidgets import * app = QApplication([]) form = QDialog() form.show() app.exec_()
이런 식의 코드도 다음과 같은 결과물을 만들 수는 있습니다.
반응형