2012-11-22 6 views
1

나는 내 자신의 QAbstractTableModel을 SQLite에 연결했습니다. 데이터베이스에서 데이터를 가져 와서 내 목록에 열 이름으로 씁니다. 데이터를 찾을 때 SQL 쿼리로 테이블에 대한 처리를 원하지 않습니다.Qt QAbstractModel 데이터를 찾고 있습니다

당신은 어떻게 생각하십니까? 정상입니까?

제발 나에게 조언을 해줘.

+0

당신이 무엇을 요구하고 있는지 확실하지 않은 질문을 다시 써야합니다. [QSqlTableModel] (http://qt-project.org/doc/qt-4.8/qsqltablemodel.html)을 찾고 계십니까? QSqlRelationalTableModel과 같은 [다른 Qt Sql 클래스] (http://qt-project.org/doc/qt-4.8/qtsql.html)와 함께 문서에 있습니다. – Leiaz

+0

내 질문은 내가 sqlite에서 데이터를 얻고 모델에 작성하고 누구의 데이터에 대한 특급 누군가의 이름을 찾고 난 SQL 명령을 쓰고 싶지 않아 내 모델을 사용하여 그들을 찾으려면 – developer

답변

1

모델의 데이터를 검색하려면 QSortFilterProxyModel을 사용할 수 있습니다. 모델을 프록시 모델의 소스 모델로 설정하고 프록시 모델을 "검색 결과"보기에 표시합니다.

setFilterRegExp()setFilterKeyColumn()을 사용하면 찾고있는 이름과 "이름"열을 지정할 수 있습니다. 좀 더 복잡한 필터링을 원한다면 서브 클래스화할 수도 있습니다. an example in the doc이 있습니다.

0
  1. 아니요, QtSQL 모듈은 ORM을 제공하지 않으므로 직접 SQL 쿼리를 작성해야합니다.

  2. 그러나 검색/필터링을 위해 QSortFilterProxyModel (또는 하위 클래스를 필터링하거나 하위 클래스 QAbstractTableModel에 필터링 코드를 입력해도됩니다.)을 사용할 수 있습니다. 그러나 관계형 데이터베이스는 검색을 최적화 할 수 있기 때문에 (그렇게 할 가능성이 높기 때문에) 그렇게하지 않는 것이 좋습니다.

관련 문제