일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 깃
- 파이썬
- pandas
- 파이썬3
- 오피스
- VBA
- pyqt5
- 엑셀
- Excel
- 파이썬GUI
- git
- pythongui
- 윈도우11
- 파워포인트
- 아웃룩
- Android
- 비주얼베이직
- html
- 윈도우10
- windows
- Outlook
- Windows11
- 안드로이드
- Windows10
- matlab
- python
- 문자열
- win32com
- office
- python3
Appia의 IT세상
파이썬[Python GUI, PyQt5 Tutorial 024] 슬라이드바 (QSlider)만들기 본문
파이썬[Python GUI, PyQt5 Tutorial 024] 슬라이드바 (QSlider)만들기
Appia 2020. 7. 30. 07:01파이썬[Python GUI, PyQt5 Tutorial 024] 슬라이드바 (QSlider)만들기
슬라이드바를 생성해보고자 합니다. 흔히들 가장 많이 보는 형태는 다음과 같은 그림의 형태입니다.
이와 같은 형태와 비슷하게 PyQt5를 이용해서 한번 만들어보고자 합니다. 그럼 다음과 같은 코드를 먼저 살펴보겠습니다.
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QSlider, QLabel, QPushButton
from PyQt5.QtCore import Qt
class MyApp(QWidget):
def __init__(self):
super().__init__()
self.slider = QSlider(Qt.Horizontal, self)
self.slider.move(30, 30)
self.slider.setRange(0, 100)
self.slider.setSingleStep(1)
self.label = QLabel('0',self)
self.label.move(30,100)
btn = QPushButton('Default', self)
btn.move(35, 160)
self.slider.valueChanged[int].connect(self.chagne_Value)
btn.clicked.connect(self.button_clicked)
self.setWindowTitle('QSlider')
self.setGeometry(300, 300, 400, 200)
self.show()
def button_clicked(self):
self.slider.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 |
먼저 위의 코드를 실행하면 다음과 같은 화면이 나타납니다.
슬라이드바 (QSlider)를 조절하면 현재 값을 라벨에 출력해주는 형태로 코드를 작성했습니다. 그럼 세부적인 부분들에 대해서 더 살펴보겠습니다.
다음 코드 부분을 통해서 슬라이드바 (QSlider)의 기본적인 부분에 대해서 설정할 수 있습니다.
self.slider = QSlider(Qt.Horizontal, self)
self.slider.move(30, 30)
self.slider.setRange(0, 100)
self.slider.setSingleStep(1)
|
cs |
먼저, 가로 세로인지에 대해서 생성시에 설정을 해주게 되어 있습니다. 생성시에 다음과 같이 가로 세로를 설정하여 생성할 수 있습니다.
Qt.Horizontal | 가로 형태의 슬라이드바 (QSlider) |
Qt.Vertical | 세로형태의 슬라이드바 (QSlider) |
그리고 setRange을 통해서 최소값과 최대값을 설정할 수 있습니다. setSingleStep의 경우 한 Step을 적용될 수를 이야기 합니다. 가장 쉽게 생각하시면, 다음과 같은 부분이라고 생각하시면 됩니다. 가로 형태의 슬라이드바를 사용시에 키보드 좌우를 통해서 슬라이디바의 값을 설정할 수 있습니다. 이 때, 최소 움직여 주는 값을 이야기합니다.
btn = QPushButton('Default', self)
btn.move(35, 160)
self.slider.valueChanged[int].connect(self.chagne_Value)
btn.clicked.connect(self.button_clicked)
self.setWindowTitle('QSlider')
self.setGeometry(300, 300, 400, 200)
self.show()
def button_clicked(self):
self.slider.setValue(0)
def chagne_Value(self,value):
print(value)
self.label.setText(str(value))
self.label.adjustSize()
self.label.repaint()
|
cs |
먼저, 위의 생성한 버튼을 클릭시에 값을 slider.setValue를 통해 값을 0으로 초기화 하는 버튼을 만들었습니다. 그리고 값을 변활때마다, 변화된 값이 라벨에 출려되게 하였습니다. 이 부분은 change_value함수와 valueChanged와의 이벤트 연결을 통해서 작성하였습니다. 그럼 이벤트 관련된 어떤 부분들이 존재하는 지 살펴보겠습니다.
valueChanged | 슬라이더의 값이 변경시 |
sliderPressed | 슬라이더을 클릭하여 누르기 시작할때 |
sliderMoved | 슬라이더의 움직임 발생시 |
sliderReleased | 슬라이더을 클릭한 부분이 해제 될때 |
위와 같은 이벤트들을 연결하여 사용이 가능합니다.
이번 포스팅에서는 파이썬[Python GUI, PyQt5 Tutorial 024] 슬라이드바 (QSlider)만들기라는 주제로 포스팅을 해봤습니다. 나중에 음량 조절하는 부분을 이부분을 통해서 만들어볼까 합니다. 궁금하신점이나 문의 사항 있으시면 방명록 및 댓글에 글 남겨주시길 바랍니다. 감사합니다.
'Python > Python PyQt5 (GUI)' 카테고리의 다른 글
파이썬[Python GUI, PyQt5 Tutorial 026] GUI 객체 설명, 글풍선, 툴팁(QToolTip) 달기 (0) | 2020.08.15 |
---|---|
파이썬[Python GUI, PyQt5 Tutorial 025] 다이얼 (QDial)만들기 (0) | 2020.08.01 |
파이썬[Python GUI, PyQt5 Tutorial 023] 프로그래스바(QProgressBar)만들기 (1) | 2020.07.28 |
파이썬[Python GUI, PyQt5 Tutorial 022] 메시지박스(Messagebox)만들기 (0) | 2020.07.26 |
파이썬[Python GUI, PyQt5 Tutorial 022] 메모장 만들기 (1) | 2020.07.20 |