QApplication의 인스턴스를 생성할 때 sys.argv를 전달해야 하는 이유를 다루고 있습니다. 2022. 9. 12 최초작성 모든 응용 프로그램이 작동하려면 QApplication 객체가 필요합니다. 이 객체는 GUI와 사용자 간 상호 작용을 제어하는 응용 프로그램의 기본 이벤트 루프를 시작하고 유지합니다. PyQt로 응용 프로그램을 개발할 때 다음처럼 QApplication 인스턴스를 생성하고 sys.argv를 전달했습니다. import sys from PyQt5.QtWidgets import QApplication app = QApplication(sys.argv) print(sys.argv) 다음처럼 실행하면 sys.argv의 내용을 출력해줍니다. sys.argv에는 커맨드라인에서 파이썬 ..

QTreeView에 json을 로드하여 보여주고 QTreeView에서 수정한 결과를 다시 json으로 저장하는 예제 코드입니다. 2022. 8. 17 최초작성 2022. 8. 18 추가관련 구현 처음 실행하면 ini 파일이 없기 때문에 코드에 넣어둔 디폴트 값을 사용하여 QTreeView를 채웁니다. 이후에는 생성된 ini 파일에서 로드하여 보여줍니다. QTreeView의 항목을 더블 클릭하여 원하는 항목을 변경할 수 있습니다. 마우스 우클릭하여 보이는 메뉴에서 QTreeVIew의 항목을 추가하거나 삭제할 수 있습니다. 트리구조에서 위치한 레벨에 따라 보이는 메뉴가 다릅니다. 프로그램 종료시 QTreeView에 있는 내용을 ini 파일에 저장합니다. 전체 소스 코드입니다. import os, sys, j..

이미지와 텍스트를 리스트뷰 형태로 보여주는 간단한 QListWidget 예제 입니다. 2022. 8. 16 최초작성 실행하면 리스트뷰의 한 줄당 이미지와 텍스트가 보입니다. 전체 소스코드입니다. from PyQt5 import QtWidgets from PyQt5 import QtGui from PyQt5 import QtCore import sys def get_item_widget(image, text): widget = QtWidgets.QWidget() horizontal_layout = QtWidgets.QHBoxLayout() label = QtWidgets.QLabel() label.setFixedSize(200, 200) pixmap = QtGui.QPixmap(image).scaled(2..

connect에서 slot 함수에 아규먼트를 전달하는 PyQt5 예제입니다. 2022. 8. 16 최초작성 프로그램을 실행한 후, 버튼을 클릭하면 connect에서 slot 함수에 전달한 아규먼트를 화면에 출력해줍니다. 전체 소스코드입니다. import sys from PyQt5.QtWidgets import QApplication, QDialog, QPushButton, QHBoxLayout from PyQt5.QtCore import pyqtSlot, QSize class MyDialog(QDialog): def __init__(self): super().__init__() self.setMinimumSize(QSize(300, 200)) horizontal_layout = QHBoxLayout() ..

간단한 QStackedWidget 예제입니다. 2022. 8. 14 최초작성 버튼위에 QStackedWidget를 위한 영역이 존재합니다. STACK 1과 STACK 2 버튼을 누름에 따라 이 영역에 다른 레이어를 보여줍니다. 전체 소스코드입니다. import sys from PyQt5.QtWidgets import QVBoxLayout, QHBoxLayout, QWidget, QStackedWidget, QPushButton, QLabel, QDialog, QApplication from PyQt5.QtGui import QPixmap class MainDialog(QDialog): def __init__(self): super().__init__() vertical_layout = QVBoxLayou..

간단한 QProgressDialog 예제 입니다. 2022. 8. 14 최초작성 실행하면 두 개의 버튼이 보입니다. “QProgressDialog 보여주기”를 클릭하면 QProgressDialog를 보여줍니다. “QProgressDialog 숨기기”를 클릭하면 QProgressDialog가 사라집니다. 전체 소스 코드입니다. import sys from PyQt5.QtWidgets import QHBoxLayout, QPushButton, QProgressDialog, QDialog, QApplication from PyQt5.QtCore import Qt class MainDialog(QDialog): def __init__(self): super().__init__() horizontal_layout..

PyQt5에서 사용할 수 있는 FlowLayout 예제 코드입니다. 2022. 7. 23 최초작성 우선 실행 결과입니다. 창의 크기가 변경됨에 따라 FlowLayout에 추가된 자식 위젯의 배치가 달라지게 됩니다. FlowLayout 생성시 orientation의 아규먼트에 따라 배치 방법이 다르니 아래 캡처 사진으로 확인하세요. flowLayout = FlowLayout(orientation=QtCore.Qt.Horizontal) flowLayout = FlowLayout(orientation=QtCore.Qt.Vertical) 전체 소스 코드입니다. 소스코드가 있는 곳에 이미지 파일을 하나 저장하고 다음 부분을 수정하세요. pixmap = QtGui.QPixmap('apple.jpeg') from P..

OpenCV에서 캡처한 영상을 pyQt5로 작성된 GUI에서 보여주는 방법을 다룹니다. 깃허브에 있는 코드를 수정하여 사용했습니다. 2019. 1. 14 최초작성 처음 실행하면 버튼 2개만 보입니다. start 버튼을 클릭하면 웹캠 영상이 보입니다. Canny 버튼을 클릭하면 오른쪽에 캐니 영상을 보여줍니다. # 출처 - https://github.com/ddd4117/GUI/blob/master/src/camera_test.py # 수정 - webnautes import cv2 import sys from PyQt5 import QtCore from PyQt5 import QtWidgets from PyQt5 import QtGui class ShowVideo(QtCore.QObject): flag =..