Qt/PyQt5 강좌
pyQt5 QTableWidget 예제 코드
webnautes
2024. 8. 16. 22:10
반응형
pyQt5 QTableWidget 예제 코드입니다.
2024. 8. 12 최초작성
import sys from PyQt5.QtWidgets import QApplication, QWidget, QTableWidget, QTableWidgetItem, QVBoxLayout, QHeaderView, QFrame from PyQt5.QtCore import Qt class TableExample(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setWindowTitle('PyQt5 Table Example') self.setFixedSize(400,250) self.table = QTableWidget() # 테이블 크기 설정 (행, 열) self.table.setRowCount(5) self.table.setColumnCount(3) # 열 헤더 설정 self.table.setHorizontalHeaderLabels(['Name', 'Age', 'City']) # 데이터 추가 data = [ ('Alice', '25', 'New York'), ('Bob', '30', 'San Francisco'), ('Charlie', '35', 'London'), ('David', '40', 'Tokyo'), ('Eve', '45', 'Paris') ] for row, (name, age, city) in enumerate(data): self.table.setItem(row, 0, QTableWidgetItem(name)) self.table.setItem(row, 1, QTableWidgetItem(age)) self.table.setItem(row, 2, QTableWidgetItem(city)) # 테이블 크기를 내용에 맞게 조정 self.table.resizeColumnsToContents() self.table.resizeRowsToContents() # 헤더 크기 조정 및 스타일 설정 self.table.horizontalHeader().setStretchLastSection(True) self.table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) self.table.verticalHeader().setSectionResizeMode(QHeaderView.Stretch) self.table.setFrameStyle(QFrame.Box | QFrame.Plain) # 스크롤바 제거 self.table.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff) self.table.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff) # 레이아웃 설정 layout = QVBoxLayout() layout.addWidget(self.table) layout.setContentsMargins(10, 10, 10, 10) self.setLayout(layout) # 창 크기를 테이블 크기에 맞게 자동 조정 self.adjustSize() if __name__ == '__main__': app = QApplication(sys.argv) ex = TableExample() ex.show() sys.exit(app.exec_()) |
반응형