Python GUIs: QTableView에서 행 배경... 노트

Python GUIs: QTableView에서 행 배경색 설정 방법 — 데이터에 따라 전체 행을 색칠하기 위해 Qt의 BackgroundRole 사용

QTableView에서 장치 상태를 시각적으로 나타내기 위해, 모델의 data() 메서드를 사용자 정의하여 전체 행을 강조 표시할 수 있습니다. QTableView 뷰는 각 셀에 대해 Qt.BackgroundRole을 포함한 다양한 데이터 역할을 모델에 쿼리합니다. 행의 데이터에 기반한 조건에 따라 Qt.BackgroundRole이 요청될 때 모델의 data() 메서드에서 QColor를 반환함으로써 배경색을 설정할 수 있습니다. 이 색상은 data() 메서드가 모든 셀에 대해 호출되고 색상 결정이 열 인덱스에 의존하지 않기 때문에 해당 행의 모든 셀에 적용됩니다. 예시에서는 "NewConnection" 상태는 파란색으로, "Registered" 상태는 녹색으로 행을 색칠하여 이를 보여줍니다. 색상이 지정된 배경에서 텍스트 가독성을 보장하기 위해 Qt.ForegroundRole을 처리하고 대조되는 텍스트 색상을 반환할 수도 있습니다. 데이터가 동적으로 변경되는 경우, 뷰가 다시 렌더링하고 업데이트된 행 색상을 표시하도록 모델에서 dataChanged 신호를 방출해야 합니다. 이 접근 방식은 QTableView에서 행을 강조 표시하는 명확하고 데이터 기반의 방법을 제공합니다.