반응형
PySide6 QComboBox 아이템 우측 정렬 적용 방법
이번 포스팅에서는 PySide6를 사용하여 QComboBox 위젯에 추가된 아이템들이 드롭다운 목록에서 우측 정렬되도록 설정하는 두 가지 방법을 소개합니다. 또한, QComboBox가 편집 가능(editable) 할 경우 라인 에디터의 텍스트 정렬을 변경하는 방법도 함께 다룹니다.
목차
- 방법 1: 모델 데이터를 이용한 아이템 정렬 설정
- 방법 2: 편집 가능한 QComboBox에서 라인 에디터 정렬 변경
- 비교 테이블
- 필요 사항
방법 1: 모델 데이터를 이용한 아이템 정렬 설정
이 방법은 QComboBox 내부의 모델에 접근하여 각 아이템의 Qt.TextAlignmentRole 데이터를 Qt.AlignRight로 설정하는 방식입니다.
import sys
from PySide6.QtWidgets import QApplication, QComboBox, QVBoxLayout, QWidget, QMainWindow
from PySide6.QtCore import Qt
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("우측 정렬 QComboBox 예제")
# 중앙 위젯 및 레이아웃 설정
central_widget = QWidget()
self.setCentralWidget(central_widget)
layout = QVBoxLayout(central_widget)
# QComboBox 생성 및 아이템 추가
self.combo_box = QComboBox()
self.combo_box.addItems(["Option 1", "Option 2", "Option 3"])
layout.addWidget(self.combo_box)
# QComboBox의 모델에 접근하여 각 아이템을 우측 정렬로 설정
model = self.combo_box.model()
for i in range(self.combo_box.count()):
index = model.index(i, 0)
model.setData(index, Qt.AlignRight, Qt.TextAlignmentRole)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec())
반응형
방법 2: 편집 가능한 QComboBox에서 라인 에디터 정렬 변경
편집 가능한 QComboBox를 사용하는 경우, 드롭다운 목록뿐만 아니라 현재 선택된 텍스트(라인 에디터)도 우측 정렬할 수 있습니다.
import sys
from PySide6.QtWidgets import QApplication, QComboBox, QVBoxLayout, QWidget, QMainWindow
from PySide6.QtCore import Qt
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("편집 가능한 QComboBox 우측 정렬 예제")
# 중앙 위젯 및 레이아웃 설정
central_widget = QWidget()
self.setCentralWidget(central_widget)
layout = QVBoxLayout(central_widget)
# 편집 가능한 QComboBox 생성 및 아이템 추가
self.combo_box = QComboBox()
self.combo_box.setEditable(True) # 편집 가능하도록 설정
self.combo_box.addItems(["Option 1", "Option 2", "Option 3"])
layout.addWidget(self.combo_box)
# 드롭다운 아이템들을 우측 정렬로 설정
model = self.combo_box.model()
for i in range(self.combo_box.count()):
index = model.index(i, 0)
model.setData(index, Qt.AlignRight, Qt.TextAlignmentRole)
# 현재 선택된 텍스트(라인 에디터)의 우측 정렬 설정
self.combo_box.lineEdit().setAlignment(Qt.AlignRight)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec())
비교 테이블
방법 | 설명 | 적용 대상 |
모델 데이터 이용 | QComboBox 내부 모델을 통해 각 아이템의 정렬 데이터를 변경 | 기본 QComboBox 아이템 |
편집 가능한 QComboBox | QComboBox를 편집 가능하게 설정한 후, 라인 에디터의 텍스트 정렬을 변경 | 드롭다운 목록 및 라인 에디터 텍스트 |
반응형
'코딩취미 > Python' 카테고리의 다른 글
PySide6를 사용하여 MDI 인터페이스에서 수식 표현하기 (0) | 2025.02.19 |
---|---|
PySide6에서 sizeHint()와 resizeEvent의 크기 차이 이해하기 (0) | 2025.02.19 |
PySide6로 QGroupBox를 스크롤 가능하게 만드는 방법 (0) | 2025.02.18 |
PySide6: MDI SubWindow 내부 스크롤바 색상 변경하기 (0) | 2025.02.17 |
초보자를 위한 exit(), break, return 차이점과 사용 방법 (0) | 2024.12.23 |