프로젝트 및 실습/PyQt

[PyQt] Table Widget 열 너비를 Text 길이에 맞추기

jooona 2022. 9. 28. 20:53
반응형

Table Widget을 만들어 사용하다 보면 열 너비가 Text 길이보다 짧아 내용이 생략되는 경우가 종종 있습니다.

 

아래의 캡처와 같은 상황입니다.

 

 

2행 2열의 내용을 보면 "United States of America"라는 문자열을 넣어 주었는데, 기본 세팅된 테이블 열의 너비보다 문자열의 길이가 길어 생략되어 출력되는 것을 확인할 수 있습니다.

 

이러한 경우 단 한 가지 속성 값으로 쉽게 이를 해결할 수 있습니다.

 

[QTableWidget].resizeColumnsToContents()

 

위의 코드를 붙여 넣기만 하면 자동으로 테이블 열의 너비를 문자열 중 가장 긴 텍스트에 맞춰줍니다.

 

import sys
from PyQt5.QtWidgets import *

class MyApp(QWidget):

    def __init__(self):
        super().__init__()
        self.tableWidget = QTableWidget()
        self.table_example()

    def table_example(self):

        self.tableWidget.setRowCount(3)
        self.tableWidget.setColumnCount(2)

        self.tableWidget.setItem(0, 0, QTableWidgetItem('Seoul'))
        self.tableWidget.setItem(0, 1, QTableWidgetItem('Korea'))
        self.tableWidget.setItem(1, 0, QTableWidgetItem('Boston'))
        self.tableWidget.setItem(1, 1, QTableWidgetItem('United States of America'))
        self.tableWidget.setItem(2, 0, QTableWidgetItem('London'))
        self.tableWidget.setItem(2, 1, QTableWidgetItem('United Kingdom'))

        self.tableWidget.resizeColumnsToContents()

        layout = QVBoxLayout()
        layout.addWidget(self.tableWidget)
        self.setLayout(layout)

        self.setWindowTitle('QTableWidget Example')
        self.setGeometry(300, 300, 300, 200)
        self.show()


if __name__ == '__main__':

    app = QApplication(sys.argv)
    exe = MyApp()
    sys.exit(app.exec_())

 

다음은 결과 화면입니다.

 

반응형