2009-07-06 10 views
0

나는 급여 기록을 처리하기위한 작은 데이터베이스 프로젝트를 작성합니다. 이러한 급여 기록은보기 위해 테이블 ​​뷰 개체에 저장됩니다. 어떻게하면 TableView에서 특정 레코드를 검색 할 수 있습니까? 어떤 생각이라도 도와주세요.TableView 검색

답변

2

모델/뷰 패러다임을 사용하는 경우 QAbstractItemModel 클래스에있는 "match()"메서드를 사용할 수 있습니다. 예를 들어 다음 코드 스 니펫을 참조하십시오.

model->match(model->index(0,0), 
      Qt::DisplayRole, 
      pattern, -1, 
      Qt::MatchContains | Qt::MatchRecursive); 

이 코드는 TreeView에서 패턴 문자열을 찾는 데 사용됩니다. 플래그는 표시 역할 표현 중 "패턴"이있는 해당 레코드를 찾기 위해 설정되며 트리를 통해 재귀 적으로 검색이 수행됩니다 (사용자가 TableView에서 검색하지 않아도됩니다 :)).

0

프록시 모델을 원본 모델과보기 사이에 꽂아 모델 데이터를 필터링 할 수 있습니다. 모델 행/열을 정렬 할 수있는 QSortFilterProxyModel을 살펴보십시오. 키에 맞는 정규 표현식을 제공하면 찾을 수있는 항목이 하나만 일치합니다. 일반적인 모델 (예 : rowCount 확인)과 같이 프록시 모델을 사용하면 자동으로 업데이트되어 다른보기에서 사용될 수 있습니다.