파이썬 (pythoon)

Python PyQt6 TableView 사용 데이터 표시하기

working for you 2023. 7. 1. 09:11
반응형

Python PyQt6은 데이터를 표와 같은 형식으로 표시하기 위한 TableView 위젯을 제공합니다. 이 글에서는 PyQt6 TableView를 사용하여 데이터를 표시하고, 모양을 사용자 지정하고, 테이블과의 상호 작용을 처리하는 방법을 살펴봅니다. 자, 그럼 Python PyQt6 TableView 사용 데이터 표시하기 시작해 볼까요?

 

[목차]
1. 기본 TableView 만들기
2. TableView 사용자 지정
3. TableView와의 상호 작용 처리
4. 결론 및 의견

 

 

Python PyQt6 TableView

 

1. 기본 TableView 만들기

기본 테이블 보기를 만들려면 필요한 모듈을 가져와서 QTableView 클래스를 인스턴스화해야 합니다. 또한 QStandardItemModel 클래스를 사용하여 데이터를 저장하고 조작합니다. 다음은 샘플 데이터를 표시하는 기본 테이블 보기의 예입니다.

from PyQt6.QtCore import Qt
from PyQt6.QtGui import QStandardItemModel, QStandardItem
from PyQt6.QtWidgets import QApplication, QMainWindow, QTableView

app = QApplication([])
window = QMainWindow()

model = QStandardItemModel()
model.setHorizontalHeaderLabels(["Name", "Age", "Country"])

data = [
    ["John Doe", "25", "USA"],
    ["Jane Smith", "30", "Canada"],
    ["Michael Johnson", "40", "Australia"]
]

for row in data:
    items = [QStandardItem(item) for item in row]
    model.appendRow(items)

table_view = QTableView()
table_view.setModel(model)

window.setCentralWidget(table_view)
window.show()
app.exec()

 

실행화면

Python PyQt6 TableView 사용

 

 

2. TableView 사용자 지정

PyQt6 TableView는 테이블의 시각적 모양과 동작을 향상시키기 위해 다양한 사용자 지정 옵션을 제공합니다. 머리글 레이블을 수정하고, 열 너비를 조정하고, 정렬을 활성화하는 등의 작업을 수행할 수 있습니다. 다음은 이러한 사용자 지정 중 일부를 보여주는 예입니다.

# ... previous code ...

# Set column widths
table_view.setColumnWidth(0, 200)
table_view.setColumnWidth(1, 80)
table_view.setColumnWidth(2, 120)

# Enable sorting
table_view.setSortingEnabled(True)

# Set table style
table_view.setStyleSheet("QTableView { background-color: #f2f2f2; }")
table_view.horizontalHeader().setStyleSheet("QHeaderView::section { background-color: #cccccc; }")

# ... continue with window setup and execution ...

 

 

3. TableView와의 상호 작용 처리

PyQt6 TableView를 사용하면 셀 선택, 데이터 편집, 이벤트 반응과 같은 테이블과의 사용자 상호 작용을 처리할 수 있습니다. TableView에서 내보낸 신호를 사용자 지정 슬롯에 연결하여 원하는 작업을 수행할 수 있습니다. 다음은 셀 선택 이벤트를 연결하는 예입니다.

# ... previous code ...

def on_cell_selected(index):
    row = index.row()
    column = index.column()
    item = model.item(row, column)
    if item is not None:
        value = item.text()
        print(f"Selected cell value: {value}")

table_view.selectionModel().currentChanged.connect(on_cell_selected)

# ... continue with window setup and execution ...

 

 

4. 결론 및 의견

이 글에서는 Python PyQt6 TableView 사용 데이터 표시하기에 대해 살펴보았습니다. 환경을 설정하고 샘플 데이터로 기본 테이블 보기를 만드는 것으로 시작했습니다.

 

그런 다음 열 너비를 조정하고, 정렬을 활성화하고, 테이블 스타일을 지정하여 테이블 모양을 사용자 지정하는 방법을 배웠습니다. 또한 신호를 사용자 지정 슬롯에 연결하여 셀 선택과 같은 사용자 상호 작용을 처리하는 방법을 탐색했습니다.

 

 

[관련글]

[파이썬 (pythoon)] - PyQt6를 사용한 간단한 로그인 프로그램 만들기

 

PyQt6를 사용한 간단한 로그인 프로그램 만들기

데스크톱 애플리케이션 또는 웹 기반 플랫폼을 개발하더라도, 견고한 로그인 메커니즘을 구현하여 사용자 데이터를 보호하고 개인 정보를 보호하는 것이 중요합니다. 이 글에서는 PyQt6를 사용

2toy.net

[파이썬 (pythoon)] - Python GUI Pyqt6 vs Tkinter vs PySide2

 

Python GUI Pyqt6 vs Tkinter vs PySide2

Python은 선택할 수 있는 여러 GUI 라이브러리와 프레임워크를 제공합니다. PyQt6을 비롯한 Tkinter, wxPython 및 PySide2를 포함한 다양한 Python GUI 라이브러리를 살펴보고 비교할 예정입니다. 그럼 Python GUI

2toy.net

[정보 및 유용한 팁] - 챗GPT 란? (CHAT GPT 사용)

 

챗GPT 란? (CHAT GPT 사용)

챗GPT 란 무엇일까요? 요즘 너무 핫하다 못해 마치 옆에 있는 선생님처럼 느껴지는 이 인공지능 AI에 대해서 이해하기 쉽게 정리하려 합니다. 결론적으로 챗GPT에게 질문을 하면, 형식적인 답이 아

2toy.net

[정보 및 유용한 팁] - AI 디지털 교과서 1대1 맞춤 교육 홍보 계획 - 교육부

 

AI 디지털 교과서 1대1 맞춤 교육 홍보 계획 - 교육부

교육 개혁의 중요한 과제 중 하나인 디지털 교육 혁신을 일환으로, 교육부는 AI 디지털 교과서 홍보 계획을 발표할 예정입니다. 이 혁신적인 계획은 인공지능(AI)의 힘을 활용하여 모든 학생들에

2toy.net

[파이썬 (pythoon)] - PyQt QWebEngineView 웹 브라우저 만들기

 

PyQt QWebEngineView 웹 브라우저 만들기

QWebEngineView는 PyQt 활용을 통해 파이썬 언어를 Qt toolkit을 사용할 수 있도록 하는 모듈입니다. Qt toolkit을 사용하면 GUI 애플리케이션을 만들 수 있습니다. 이번에는 PyQt QWebEngineView 웹 브라우저 만들

2toy.net

반응형