HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
📟
PyQt 5 Lecture
/
💎
003 슬롯(이벤트 함수)을 이용한 LCD 전광판 만들기
💎

003 슬롯(이벤트 함수)을 이용한 LCD 전광판 만들기

1. 코드2. 상세 내용3. 실행 화면

1. 코드

from PyQt5.QtWidgets import QWidget, QLCDNumber, QSlider, QVBoxLayout, QApplication,\ QPushButton, QLabel from PyQt5.QtCore import Qt, QCoreApplication import sys class 전광판만들기(QWidget): def __init__(self): super().__init__() self.UI초기화() def UI초기화(self): lcd = QLCDNumber(self) self.slider = QSlider(Qt.Horizontal, self) self.label = QLabel(self) self.slider.valueChanged.connect(lcd.display) self.slider.valueChanged.connect(self.setValue) btn1 = QPushButton('초기화') btn2 = QPushButton('종료') btn1.clicked.connect(self.changeValue) btn2.clicked.connect(self.exitProgram) vbox = QVBoxLayout() vbox.addWidget(lcd) vbox.addWidget(self.slider, alignment=Qt.AlignCenter) vbox.addWidget(self.label, alignment=Qt.AlignCenter) vbox.addWidget(btn1) vbox.addWidget(btn2) self.setLayout(vbox) self.setGeometry(300, 300, 300, 400) self.setWindowTitle('Signal and Slot') self.show() def changeValue(self): self.slider.setValue(0) self.label.setText(str(self.slider.value())) def setValue(self): self.label.setText(str(self.slider.value())) def exitProgram(self): QCoreApplication.instance().quit() # super().close() 이것도 사용가능 프로그램무한반복 = QApplication(sys.argv) 실행인스턴스 = 전광판만들기() 프로그램무한반복.exec_()

2. 상세 내용

lcd = QLCDNumber(self) self.slider = QSlider(Qt.Horizontal, self) self.label = QLabel(self) self.slider.valueChanged.connect(lcd.display) self.slider.valueChanged.connect(self.setValue) btn1 = QPushButton('초기화') btn2 = QPushButton('종료') btn1.clicked.connect(self.changeValue) btn2.clicked.connect(self.exitProgram)
  • QLCDNumber() : 숫자lcd 위젯
  • valueChanged : 값이 변하면 시그널을 보냄
  • lcd.display : 내장 함수로서 슬라이더값과 연동해 숫자를 보여주는 기능
  • 지금까지의 강의에서 이미 정의된 함수를 사용한 것을 제외한 만든 함수가 우리가 만든 사용자 정의 슬롯(이벤트 핸들러,함수)
def changeValue(self): self.slider.setValue(0) self.label.setText(str(self.slider.value())) def setValue(self): self.label.setText(str(self.slider.value())) def exitProgram(self): QCoreApplication.instance().quit() # super().close 이것도 사용가능
  • 위와 같은 함수가 우리가 만든 슬롯
  • 결국, 전체적인 흐름을 보자면 어떤 객체가 동작될 때 시그널을 보내 그 시그널과 슬롯을 연결시켜 원하는 이벤트를 처리하는것

3. 실행 화면

 
notion image
notion image