QLabel에서 정수 출력시 자리수 유지하는 PyQt5 예제 코드Qt/PyQt5 강좌2024. 9. 29. 22:08
Table of Contents
반응형
정수를 문자열로 변환하여 QLabel에 출력하면 자리수가 유지되지 않고 출력되는 현상이 있습니다. 이 문제를 해결한 코드입니다.
2024. 9. 29 최초작성
실행시켜 슬라이더를 움직여 보면 자리수 유지의 경우 정수의 자리수가 변해도 항상 같은 위치에 출력되는 반면 자리수 미유지의 경우엔 자리수가 증가함에 따라 출력되는 위치가 변합니다.
전체 코드입니다.
import sys from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QSlider, QLabel from PyQt5.QtCore import Qt class SliderLabelExample(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): layout = QVBoxLayout() # 슬라이더 생성 self.slider = QSlider(Qt.Horizontal) self.slider.setMinimum(1) self.slider.setMaximum(1000) self.slider.setValue(500) # 초기값 설정 self.slider.setTickPosition(QSlider.TicksBelow) self.slider.setTickInterval(100) # 자리수가 유지되는 레이블 생성 self.label_aligned = QLabel() self.label_aligned.setAlignment(Qt.AlignCenter) # 자리수가 유지되지 않는 레이블 생성 self.label_not_aligned = QLabel() self.label_not_aligned.setAlignment(Qt.AlignCenter) # 슬라이더 값 변경 시 레이블 업데이트 self.slider.valueChanged.connect(self.updateLabels) layout.addWidget(self.slider) layout.addWidget(self.label_aligned) layout.addWidget(self.label_not_aligned) self.setLayout(layout) self.setWindowTitle('Slider Label Comparison Example') self.setGeometry(300, 300, 300, 200) # 초기 레이블 업데이트 self.updateLabels(self.slider.value()) def updateLabels(self, value): # 자리수가 유지되는 레이블 업데이트 (고정폭 폰트 사용) self.label_aligned.setText(f"<pre>자리수 유지: {value:4d}</pre>") # 자리수가 유지되지 않는 레이블 업데이트 self.label_not_aligned.setText(f"자리수 미유지: {value}") if __name__ == '__main__': app = QApplication(sys.argv) ex = SliderLabelExample() ex.show() sys.exit(app.exec_()) |
반응형
'Qt > PyQt5 강좌' 카테고리의 다른 글
호버와 클릭 효과 있는 PyQt5 QPushButton 예제 (0) | 2024.11.08 |
---|---|
fcitx5 사용시 PyQt5에서 한글 입력안되는 문제 해결 방법 (2) | 2024.10.28 |
PyQt5로 구현한 버튼으로 스크롤 가능한 리스트뷰(QListWidget) 예제 (0) | 2024.09.29 |
pyQt5에서 레이아웃을 사용하는 이유 (0) | 2024.09.22 |
pyQt5을 사용하여 만든 간단한 알람 시계 (2) | 2024.09.10 |