사용자 인터페이스를 구성하는 핵심요소
QApplication 클래스의 객체를 생성한 후 exec_ 메서드를 호출하는 순간 생성된다. 한 번 생성된 이벤트 루프는 사용자가 윈도우를 닫을 때까지 실행되면서 위젯에서 발생한 시그널을 처리하는 슬롯을 호출하는 역할
먼저 PushButtonW 라는 이름으로 QMainWindow라는 클래스를 상속받는 클래스를 생성한다.
def __init__(self):
해당 클래스가 시작될 때 가장 먼저 시작될 수 있도록 하는 함수.
super().__init__()
생성자인 QMainWindow의 클래스를 먼저 시작할 수 있도록 한다.
self.setupUI()
함수 즉 def는 클래스 내부 도는 외부에 존재할 수 있다. 여기서 주의할 것은 클래스 내부에 존재하는 메서드는 항상 클래스 자체를 인자로써 주고 받는다.
즉 PushButtonW 클래스의 생성자에서는 부모 클래스의 생성자를 호출할 뿐만 아니라 자신의 UI를 생성하기 위한 setupUI 메서드를 호출한다.
png 파일은 16픽셀 사이즈만 올려놓게 되면 다른 곳에 활용될 때, 저해상도라 깨져보일 수 있어 size 속성을 추가해 값에 따라 여러 개를 추가해서 브라우저가 적절한 픽셀이미지를 사용할 수 있게 해야 한다.
이 것을 해결한 것이 ico파일, 이 파일 확장자는 애초에 여러가지 픽셀의 이미지를 포함해 저장할 수 있어서 사이즈 별로 필요한 크기 이미지를 브라우저가 알아서 사용하게 함.
단 파일용량이 무겁게 됨.
assert 1+1 == 2 // ok
assert 1+1 == 3 // AssertionError
configparser 마이크로소프트 윈도우 INI 파일과 유사한 구조를 제공하는 기본 구성 언어를 구현하는 ConfigParser 클래스를 제공한다.
ini 파일은 보통 프로그램 정보를 저장하는 텍스트 문서를 말합니다.
kwargs는 keyword argument의 줄임말로 키워드를 제공한다. 딕셔너리 형태로 {"키워드":"특정 값"} 이렇게 함수 내부로 전달된다.
ui 파일을 저장하고 python 코드와 연결할 수 있다.
import sys
from PyQt5.QtWidgets import *
from PyQt5 import uic
#UI파일 연결
#단, UI파일은 Python 코드 파일과 같은 디렉토리에 위치해야한다.
form_class = uic.loadUiType("UI파일이름.ui")[0]
#화면을 띄우는데 사용되는 Class 선언
class WindowClass(QMainWindow, form_class) :
def __init__(self) :
super().__init__()
self.setupUi(self)
추상 클래스는 인스턴스로 만들 때는 사용하지 않으며 오로지 상속에만 사용한다.
isinstance 함수는 인스턴스가 특정 클래스/ 데이터 타입인지 검사해준다. 주로 isinstance(인스턴스, 클래스/데이터타입)으로 사용한다.
qlineedit이란, 한 줄짜리 글자를 입력받을 수 있는 입력위젯.
qlineEdit와 qcombobox로 입력을 받을 때 입력이 가능한 유효문자열을 밸리데이터로 제한할 수 있다. 이는 qt designer에서 설정할 수 없기 때문에 직접 코드로 작성해 주어야만 한다.
key 값으로 value 값을 구해낼 때, get을 쓴다.
파이썬 def function 뒤에 -> 를 쓰는 경우가 있는데, 이는 리턴값이 어떠한 상태인지를 명시해주기 위해 사용한다.
np.fromfile은 텍스트나 이진 파일 데이터에서 배열을 생성하는 것으로, 단순한 형태의 텍스트 파일을 파싱하고 알려진 데이터 타입을 가진 이진 데이터를 효율적으로 읽을 수 있다(행렬데이터를 저장하고 로드하는 것과 같은 효과).
파싱(Parsing): 컴퓨터 언어나 데이터 구조를 문법에 적합하도록 분석하는 것.
ndarray는 numpy의 핵심 클래스로 다차원 행렬 자원 구조를 지원한다. 겉으로 보기에는 array()란 것이 붙어 있을 뿐 리스트와 동일한 구조로 보이지만 list와 많은 차이가 있다.