Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 티스토리챌린지
- Apple
- MQTT
- 배당
- raspberry pi
- 코스피
- 매터
- Home Assistant
- 현대통신
- SK텔레콤
- RS-485
- 애플
- 홈네트워크
- matter
- 힐스테이트 광교산
- 국내주식
- Bestin
- 해외주식
- Python
- Espressif
- cluster
- 파이썬
- 나스닥
- ConnectedHomeIP
- 공모주
- 미국주식
- 오블완
- homebridge
- 월패드
- esp32
Archives
- Today
- Total
YOGYUI
PyQt5 - QTableWidget Column Header Label 가져오기 본문
반응형
QTableWidget의 Column 헤더 라벨(텍스트)는 setHorizontalHeaderLabels(List[srt]) 메서드로 한번에 수정할 수 있지만, 설정된 라벨들을 한번에 가져오는 인터페이스는 내가 알기론 구현되어 있지 않다
대신, horizontalHeaderItem(int) 메서드를 통해 각 열의 헤더에 할당되어 있는 QTableWidgetItem을 호출한 뒤 text() 메서드로 각 열 헤더의 라벨을 가져올 수 있다
[예제 코드]
if __name__ == '__main__':
import sys
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
app = QCoreApplication.instance()
if app is None:
app = QApplication(sys.argv)
# 헤더 라벨 설정
table = QTableWidget()
hlabels = [f'COL {x + 1}' for x in range(5)]
table.setColumnCount(len(hlabels))
table.setHorizontalHeaderLabels(hlabels)
table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
# 헤더 라벨들을 리스트로 가져오기
test = [table.horizontalHeaderItem(x).text() for x in range(table.columnCount())]
table.show()
app.exec_()
pythonic하게 for문을 쓰지 않고 한줄로 리스트 형식으로 각 열의 헤더 라벨을 리스트화했다 (test)
[실행 결과]
horizontalHeaderItem을 통해 호출된 객체의 클래스는 QTableWidgetItem이다
In [1]: print(type(table.horizontalHeaderItem(0)))
Out[1]: <class 'PyQt5.QtWidgets.QTableWidgetItem'>
test를 print해보면 setHorizontalHeaderLabels로 설정한 라벨들이 반환된 것을 알 수 있다
In [2]: print(test)
Out[2]: ['COL 1', 'COL 2', 'COL 3', 'COL 4', 'COL 5']
반응형
'Software > Python' 카테고리의 다른 글
Python - Decorator in Class (0) | 2021.07.05 |
---|---|
PyQt5 - QDoubleSpinbox 더블클릭 시 텍스트 전체선택 (0) | 2021.06.21 |
Python::구조적 패턴 매칭 - 파이썬에서 switch/case문을?! (0) | 2021.03.21 |
Python으로 순서도 그리기 (schemdraw) (0) | 2021.01.27 |
Flask - Dynamic Page Update (Ajax) (0) | 2021.01.10 |