PyQt5에서 QTableWidget를 마우스로 클릭하여 선택되는 것 방지Qt/PyQt5 강좌2024. 8. 29. 22:28
Table of Contents
반응형
PyQt5에서 QTableWidget를 마우스로 클릭하여 선택되는 것 방지를 하는 예제입니다.
2024. 8. 29 최초작성
실행결과 표를 클릭해도 선택이 되지 않습니다.
전체 코드입니다. 표 선택을 방지하기 위해 QTableWidget 대신에 QTableWidget를 상속받은 NoSelectionTable를 사용합니다.
import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QHeaderView from PyQt5.QtWidgets import QTableWidget, QTableWidgetItem, QAbstractItemView from PyQt5.QtCore import Qt from PyQt5.QtGui import QColor # 표 선택을 방지합니다. class NoSelectionTable(QTableWidget): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.setSelectionMode(QAbstractItemView.NoSelection) self.setFocusPolicy(Qt.NoFocus) self.setEditTriggers(QAbstractItemView.NoEditTriggers) class MainWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("학생 성적표") self.table = NoSelectionTable(5, 4) # 5행 4열의 테이블 생성 self.setCentralWidget(self.table) # 열 제목 설정 headers = ["학생 이름", "국어", "영어", "수학"] self.table.setHorizontalHeaderLabels(headers) # 헤더 스타일 설정 header = self.table.horizontalHeader() header.setStyleSheet("QHeaderView::section { background-color: #2C3E50; color: white; }") # 테이블에 데이터 추가 data = [ ("김철수", 85, 92, 78), ("이영희", 92, 88, 95), ("박민수", 78, 85, 90), ("정수진", 95, 91, 88), ("장미란", 88, 79, 93) ] for row, (name, kor, eng, math) in enumerate(data): self.table.setItem(row, 0, QTableWidgetItem(name)) self.table.setItem(row, 1, QTableWidgetItem(str(kor))) self.table.setItem(row, 2, QTableWidgetItem(str(eng))) self.table.setItem(row, 3, QTableWidgetItem(str(math))) # 열 너비 자동 조정 self.table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) # 테이블 크기에 맞춰 윈도우 크기 조정 self.table.resizeColumnsToContents() self.table.resizeRowsToContents() self.adjustSize() if __name__ == '__main__': app = QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec_()) |
반응형
'Qt > PyQt5 강좌' 카테고리의 다른 글
프로그레스 바(QProgressBar)를 제어하는 간단한 PyQt5 예제 (0) | 2024.08.31 |
---|---|
PyQt5 그룹박스(QGroupBox) 예제 (0) | 2024.08.31 |
탭 재생성 시 이전 선택 탭 복원하는 pyQt5 예제 (2) | 2024.08.23 |
pyQt5로 만든 이미지 뷰어 (0) | 2024.08.21 |
pyQt5 윈도우를 화면의 중앙에 배치하기 (0) | 2024.08.19 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
@webnautes :: 멈춤보단 천천히라도
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!