QProgressBar는 PyQt5에서 제공하는 위젯 중 하나로, 작업의 진행 상태를 시각적으로 표현할 때 사용됩니다. 이 블로그 포스팅에서는 QProgressBar의 모든 속성과 사용법을 상세히 설명하겠습니다.
QProgressBar 기본 사용법
기본 설정
이제 기본적인 QProgressBar 사용 예제를 보겠습니다.
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QProgressBar
class AppDemo(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle('QProgressBar Example')
self.resize(300, 200)
layout = QVBoxLayout()
self.progressBar = QProgressBar(self)
self.progressBar.setValue(50) # 초기값 설정
layout.addWidget(self.progressBar)
self.setLayout(layout)
app = QApplication(sys.argv)
demo = AppDemo()
demo.show()
sys.exit(app.exec_())
위 코드는 기본적인 QProgressBar 위젯을 생성하고 값을 50으로 설정하는 예제입니다.
QProgressBar의 주요 속성
QProgressBar는 다양한 속성을 제공하여 진행 상태를 세밀하게 조절할 수 있습니다. 주요 속성을 하나씩 살펴보겠습니다.
최소값과 최대값 설정
setMinimum과 setMaximum 메서드를 사용하여 진행 상태의 최소값과 최대값을 설정할 수 있습니다.
self.progressBar.setMinimum(0)
self.progressBar.setMaximum(100)
현재 값 설정
setValue 메서드를 사용하여 현재 진행 상태를 설정할 수 있습니다.
self.progressBar.setValue(75)
텍스트 표시
진행 바에 텍스트를 표시하려면 setFormat 메서드를 사용합니다. %p%는 진행률을 퍼센트로 표시합니다.
self.progressBar.setFormat('%p% 완료')
방향 설정
진행 방향을 설정하려면 setOrientation 메서드를 사용합니다. Qt.Horizontal과 Qt.Vertical 값을 사용할 수 있습니다.
from PyQt5.QtCore import Qt
self.progressBar.setOrientation(Qt.Horizontal) # 수평 진행 바
텍스트 숨기기
setTextVisible 메서드를 사용하여 진행 바에 표시되는 텍스트를 숨길 수 있습니다.
self.progressBar.setTextVisible(False)
고급 사용법
QProgressBar는 단순한 진행 표시 이상으로 다양한 활용이 가능합니다. 아래는 몇 가지 고급 사용법입니다.
타이머와 연동하기
QTimer를 사용하여 진행 상태를 자동으로 업데이트할 수 있습니다.
from PyQt5.QtCore import QTimer
class AppDemo(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle('QProgressBar Timer Example')
self.resize(300, 200)
layout = QVBoxLayout()
self.progressBar = QProgressBar(self)
self.progressBar.setMaximum(100)
layout.addWidget(self.progressBar)
self.timer = QTimer(self)
self.timer.timeout.connect(self.handleTimer)
self.timer.start(100) # 100ms마다 handleTimer 호출
self.setLayout(layout)
def handleTimer(self):
value = self.progressBar.value()
if value < 100:
value += 1
self.progressBar.setValue(value)
else:
self.timer.stop()
app = QApplication(sys.argv)
demo = AppDemo()
demo.show()
sys.exit(app.exec_())
스타일 사용자 정의
CSS를 사용하여 QProgressBar의 스타일을 사용자 정의할 수 있습니다.
self.progressBar.setStyleSheet("""
QProgressBar {
border: 2px solid grey;
border-radius: 5px;
text-align: center;
}
QProgressBar::chunk {
background-color: #05B8CC;
width: 20px;
margin: 1px;
}
""")
이 포스팅에서는 PyQt5의 QProgressBar 위젯에 대해 자세히 살펴보았습니다. 기본 사용법부터 고급 활용법까지 다양한 예제를 통해 QProgressBar의 모든 속성을 설명했습니다.
'프로그래밍 > python' 카테고리의 다른 글
Qsplitter 의 모든 기능과 사용법 (0) | 2024.05.24 |
---|---|
PyQt5 QSlider와 QDial의 모든 기능과 속성 사용법 (0) | 2024.05.23 |
PyQt5 QLineEdit: 모든 속성과 사용법 (0) | 2024.05.21 |
PyQt5 QComboBox: 모든 옵션과 사용 방법 (0) | 2024.05.19 |
PyQt5 QRadioButton: 메서드와 자세한 사용법 (0) | 2024.05.18 |