본문 바로가기
반응형

Qt52

PyQT5에서 slot이 thread-safe인지 테스트 해봤습니다 PyQT5에서 시그널이 thread-safe하다는 말을 발견하고는 여러 개의 스레드에서 시그널을 발생시켜 동일한 슬롯 함수를 호출할 때 문제가 없는지 테스트 해보았습니다. https://stackoverflow.com/questions/68287979/pyqt5-are-pyqtsignals-thread-safe 2023. 5. 18 최초작성 3개의 스레드에서 루프를 돌며 pyqtSignal을 사용하여 하나의 슬롯을 반복적으로 호출하도록 했습니다. import sys from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout from PyQt5.QtCore import pyqtSignal, QThread from PyQt5.QtC.. Qt/PyQt5 강좌 2023. 10. 22.
QApplication의 인스턴스를 생성할 때 sys.argv를 전달해야 하는 이유 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에는 커맨드라인에서 파이썬 .. Qt/PyQt5 강좌 2023. 10. 22.
PyQt5 예제 - QTreeView으로 json 로드하기 및 저장하기 QTreeView에 json을 로드하여 보여주고 QTreeView에서 수정한 결과를 다시 json으로 저장하는 예제 코드입니다. 2022. 8. 17 최초작성 2022. 8. 18 추가관련 구현 처음 실행하면 ini 파일이 없기 때문에 코드에 넣어둔 디폴트 값을 사용하여 QTreeView를 채웁니다. 이후에는 생성된 ini 파일에서 로드하여 보여줍니다. QTreeView의 항목을 더블 클릭하여 원하는 항목을 변경할 수 있습니다. 마우스 우클릭하여 보이는 메뉴에서 QTreeVIew의 항목을 추가하거나 삭제할 수 있습니다. 트리구조에서 위치한 레벨에 따라 보이는 메뉴가 다릅니다. 프로그램 종료시 QTreeView에 있는 내용을 ini 파일에 저장합니다. 전체 소스 코드입니다. import os, sys, j.. Qt/PyQt5 강좌 2023. 10. 22.
PyQt5 예제 - QListWidget 이미지와 텍스트를 리스트뷰 형태로 보여주는 간단한 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.. Qt/PyQt5 강좌 2023. 10. 22.
PyQt5 예제 - connect에서 slot 함수에 아규먼트 전달하기 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() .. Qt/PyQt5 강좌 2023. 10. 22.
반응형