Signal, Slot

디자인 설계파일 화면실행 파이썬 프로그램

Qt Designer에서

Display Widgets → LCD Number

Input Widgets → Dial

dial.py 만들고 coin.py에서 코드 복사

중간 지우고 아래 코드만 남김

import sys
from PyQt5.QtWidgets import *
from PyQt5 import uic
from PyQt5.QtCore import *

form_class = uic.loadUiType("dial.ui")[0]

class MyWindow(QMainWindow, form_class) :
    def __init__(self) :
        super().__init__()
        self.setupUi(self)
        

app = QApplication(sys.argv)
win = MyWindow()
win.show()
app.exec_()

다이얼로그 이벤트 가져오기

import sys
from PyQt5.QtWidgets import *
from PyQt5 import uic
from PyQt5.QtCore import *

form_class = uic.loadUiType("dial.ui")[0]

class MyWindow(QMainWindow, form_class) :
    def __init__(self) :
        super().__init__()
        self.setupUi(self)
        
		# 새로운 줄 시작
        self.dial.valueChanged.connect(self.dial_changed)
    
    def dial_changed(self) :
        print(self.dial.value())
		# 새로운 줄 끝
app = QApplication(sys.argv)
win = MyWindow()
win.show()
app.exec_()

길어진 코드 줄이기

import sys
from PyQt5.QtWidgets import *
from PyQt5 import uic
from PyQt5.QtCore import *

form_class = uic.loadUiType("dial.ui")[0]

class MyWindow(QMainWindow, form_class) :
    def __init__(self) :
        super().__init__()
        self.setupUi(self)
        
				# 한줄로 끝
        self.dial.valueChanged.connect(self.lcd.display)

app = QApplication(sys.argv)
win = MyWindow()
win.show()
app.exec_()

활용하기(스핀박스)

Qt Designer

Input Widgets → Spin Box

import sys
from PyQt5.QtWidgets import *
from PyQt5 import uic
from PyQt5.QtCore import *

form_class = uic.loadUiType("dial.ui")[0]

class MyWindow(QMainWindow, form_class) :
    def __init__(self) :
        super().__init__()
        self.setupUi(self)
        
        self.dial.valueChanged.connect(self.lcd.display)
        self.dial.valueChanged.connect(self.spinBox.setValue)
    
    # def dial_changed(self) :
    #     print(self.dial.value())

app = QApplication(sys.argv)
win = MyWindow()
win.show()
app.exec_()