PyQt5 -- QTableWidget 사용 고급 예제 ; checkbox 넣기, 숫자나 widget으로 정렬, checked row 구하기
PyQt5 2017. 7. 18. 00:21PyQt5 -- QTableWidget 사용 고급 예제
; checkbox 넣기, 숫자나 widget으로 정렬, checked row 구하기
; checked 여부로 정렬하기
(자동정렬이 아니라, 컬럼 헤더 click시에만 정렬하기...)
** 기본적으로 QTableWidget 의 QTableWidgetItem 항목은 '문자'로 설정되며, 문자 기준으로 정렬하게 된다.
--> 따라서, 아래와 같이 '문자' 기준인 컬럼을 정렬시에는 , 예상과 전혀 다른 정렬이 된다.
--> 이를 해결하기위해, QTableWidgetItem 을 만들때 setData() 메소드 이용하여 '숫자'를 넣어줘야한다.
** 체크 표시된 항목들만 보기위해서는 , CheckBox 만 따로 widget 으로 넣고, 정렬기능도 정해야한다.
--> 정렬기능을 사용자 정의로 사용하기위해서는, QTableWidgetItem 을 상속받아 __lt__( ) 메소드를 직접 구현하면 된다.
--> 이후 widget 이 들어간 cell 에, QTableWidgetItem 항목되 같이 넣으면 됨.
--> 물론, 같은 cell 에 넣고, 서로를 signal & slot 으로 연결하여 정렬을 위한 data 주고 받아야 됨.
--> 이렇게 하면, widget 으로 정렬하는 효과 만들수있다.
** MyFrame 클래스의 __checkbox_change(self, checkvalue) 메소드는 실제는 필요없는 중복되는 메소드임.
--> 단지, signal sender 를 사용하는 예를 보기위함.
---
'PyQt5' 카테고리의 다른 글
PyQt5 -- QCalendarWidget,QDateEdit, QDateTimeEdit, QTimeEdit 사용하기 (0) | 2017.09.17 |
---|---|
PyQt5 -- QCalendarWidget 으로 달력에 공휴일 표시하기 (0) | 2017.09.17 |
PyQt5 -- QThread 사용하기 & thread 간 통신하기 (4) | 2017.06.30 |
PyQt5 -- singal & slot 으로 객체 등 보내기 (0) | 2017.06.30 |
PyQt5 -- context menu 사용법 3가지 (QTableWidget 사용함) (0) | 2017.05.05 |