PyQt5 연습_1
21/05/04
참고 강의) 파이썬 클래스(리턴제로)-www.youtube.com/watch?v=OtqWefBqbxA&t=184s
배운 점
1) 만약 Exam함수 밑에 있는 명령어는 파일을 직접 실행시에만 동작하게 하고싶으면 if __name__==' __main__'안에 적어주면 됨
원리: __name__은 파이썬 내부변수로 직접 파일명.py을 실행시켰는지, import를 통해 실행시켰는지 알 수 있다. 직접 실행 시킨경우 '__main__'이라는 문자열이 저장되고 후자의 경우는 모듈명이 저장된다.
2) sys모듈
파이썬 인터프리터가 제공하는 변수와 함수를 제어할 수 있도록 함.
함수의 종류로
2-1. sys.argv (인터프리터에서 인자들을 저장하는 리스트)
사용 예) app=QApplication(sys.argv)
*여기에 sys.argv를 넣는 이유: 윈도우 시스템 초기화하고 argv 명령행의 인수를 사용해서 객체를 생성한다.
프로그램이 끝날 때 까지 argv가 참조하는 데이터는 AQpplication객체가 사라질 때 까지 유지되어야함. 변경 시 개체 가 변경될 수 있다.
2-2. sys.exit() (스크립트 종료 프로그램 종료와 똑같음)
사용 예) sys.exit(app.exec_())
2-3. sys.path 파이썬의 모듈경로
보통 같은 파일에 있는 모듈만 import가능 sys.path에 옮기면 위치 상관없이 사용가능
3) 창 띄우는 방법
(* 보충필요)
필요한 모듈 sys, PyQt5.PyQt5.QtWidgets 모듈의 클래스 QApplication, QWidget
PyQt5.PyQt5.QtWidgets모듈에 대부분의 기본 위젯이 있다.
QApplication는 애플리케이션 객체 생성하는 용도, PyQt의 클래스를 사용할 수 있도록 초기화 시킴. QWidget기반이 라면 꼭 하나씩 있어야 함
QWidget 창띄우는 클래스로 다른 위젯을 포함시킬 수 있다. baseSize로 크기를 조절하는 등 다양한 멤버함수들 존재. 하위 클래스로 . QLabel , QPushButton , QListWidget 및 QTabWidget 등 존재 - 참고 (doc.qt.io/qt-5/qwidget.html#details) + 한 프로그램에 여러개 만들 수있다.
QPushButton 버튼을 만드는 위젯 첫번째 인자: 버튼에 추가할 문장, 두번째 인자: 버튼이 표시될 위젯
3-1 창을 띄우기 위해서 QWidget을 상속받는 클래스 생성. 상속을 받음으로서 버튼을 추가하는 등 기능을 사용함.
이때 initUI() 메소드 안에서 기능을 구현함.
3-2 애플리케이션 객체 생성 QApplication()
3-3 QWidget을 상속받는 클래스 객체 생성
3-4 app.exect_()를 통해 이벤트 루프를 돌림. > 종료 시 sys.exit()가 실행되면서 종료 시킴.