Appia의 IT세상

파이썬[Python GUI, PyQt5 Tutorial 025] 다이얼 (QDial)만들기 본문

Python/Python PyQt5 (GUI)

파이썬[Python GUI, PyQt5 Tutorial 025] 다이얼 (QDial)만들기

Appia 2020. 8. 1. 07:44
반응형

파이썬[Python GUI, PyQt5 Tutorial 025] 다이얼 (QDial)만들기

 

앞서 포스팅에서는 슬라이드바(QSlider)를 통해서 수치 값등을 조절할 수 있는 GUI 위젯에 대해서 살펴봤습니다. 이번에는 온도 조절계에서등과 같은 곳에서 많이 사용하는 다이얼(QDial)에 대해서 살펴보고자 합니다. 흔히들 다음과 같은 부분을 다이얼(QDial)이라고 합니다. 

QDial 예시 

위와 같은 부분을 작성하는 코드를 작성해보도록 하겠습니다. 

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QDial, QLabel, QPushButton
 
class MyApp(QWidget):
 
    def __init__(self):
        super().__init__()
        self.dial = QDial(self)
        self.dial.move(3050)
        self.dial.setRange(050)
        self.label = QLabel('0',self)
 
        self.label.move(200,100)
 
 
        btn = QPushButton('Default', self)
        btn.move(35160)
 
        self.dial.valueChanged[int].connect(self.chagne_Value)
 
        btn.clicked.connect(self.button_clicked)
 
        self.setWindowTitle('QDial')
        self.setGeometry(300300400200)
        self.show()
 
    def button_clicked(self):
        self.dial.setValue(0)
 
    def chagne_Value(self,value):
        print(value)
        self.label.setText(str(value))
        self.label.adjustSize()
        self.label.repaint()
 
 
 
if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = MyApp()
    sys.exit(app.exec_())
cs

위의 코드를 실행하시면 위에 첨부한 그림과 같은 GUI가 나타납니다. 여기에서 원형의 부분을 돌려서 값을 변경하면, 현재의 값이 우측에 라벨에 표시되는 형태입니다. 

그럼 간단히 살펴보겠습니다. 

        self.dial = QDial(self)
        self.dial.move(3050)
        self.dial.setRange(050)
cs

먼저, QDial 부분을 바탕으로 GUI를 생성해줍니다. 그리고, 위치를 정한 후, setRange(시작, 끝)을 통해서 시작과 끝 값을 지정해줍니다. 

 

그리고 값이 변경될 때, 즉 원형의 다이얼을 돌릴 때, 이벤트 연결을 통해서 라벨에 현재의 값이 표현되도록 해줍니다. 

    def chagne_Value(self,value):
        print(value)
        self.label.setText(str(value))
        self.label.adjustSize()
        self.label.repaint()
cs

 

위의 부분과 같이 다음과 같은 이벤트를 통해서 연결이 가능합니다. 

valueChanged 다이얼의 값이 변경시
sliderPressed 다이얼을 클릭하여 누르기 시작할때
sliderMoved 다이얼의 움직임 발생시
sliderReleased 다이얼을 클릭한 부분이 해제 될때

기본적으로는 앞서서 봤던 슬라이더바와 동일합니다. 

 

이번 포스팅은 파이썬[Python GUI, PyQt5 Tutorial 025] 다이얼 (QDial)만들기라는 주제로 간단히 다이얼(QDial)을 만들어봤습니다. 혹시 궁금하신 점이나 문의 사항 있으시면 언제든지 댓글 및 방명록에 글 남겨주시길 바랍니다. 

파이썬[Python GUI, PyQt5 Tutorial 024] 슬라이드바 (QSlider)만들기

 

위의 링크의 이전 포스팅과 함꼐 살펴보시는 것도 좋을 것이라고 생각이 듭니다. 감사합니다. 

반응형
Comments