반응형

PyQt5 -- 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 를 사용하는 예를 보기위함.




---




반응형
Posted by 자유프로그램
,