| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- pythongui
- 파워포인트
- VBA
- 깃
- Android
- windows
- python3
- 파이썬3
- git
- python
- 아웃룩
- Windows10
- 윈도우11
- matlab
- 파이썬
- 파이썬GUI
- pandas
- 안드로이드
- 문자열
- office
- win32com
- 윈도우10
- Outlook
- Excel
- pyqt5
- 오피스
- 엑셀
- 비주얼베이직
- Windows11
- html
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 |
