일부 데이터베이스 테이블을 탐색하는 소프트웨어를 만들고 사용자가이 테이블을 편집 할 수 있습니다. 이 link을 읽은 후 필자는 필자가 필요로하는 모델/뷰를 좋은 접근 방법으로 삼았다. 다음 모형을 살펴보십시오. Qt 모델/뷰 및 QTableView의 기본 개념
이 사실을 알고 있으므로 개념을 이해하고 있는지 확인해야합니다. 좋은 방향으로 나아가는 지 말해주세요.
내 테이블마다 모델 클래스를 생성해야하나요? (하위 클래스 QAbstractModel). 그것은 다음과 같이 표시됩니다
class citiesTableModel : public QAbstractItemModel { Q_OBJECT }
citiesTableModel 생성자는 데이터베이스의 테이블 에서 데이터를 가져올 것인가?
다른 모델마다 QTableView의 하위 클래스를 만들어야합니까?
class citiesTableView : public QTableView{}
- Finnaly, 나는 view.setData과 view.setModel이 가 다시 구현 될 필요가 있다고 생각? setModel은 각 모델 행을 반복하여 QTableView를 만들고 setData는 모델에 새 데이터를 추가하기위한 적절한 쿼리를 수행합니까?
대단히 감사합니다.
어느 쪽이든 당신의 데이터베이스는 SQL 데이터베이스입니다 :
Thx입니다. 실제로 tought보다 조금 더 쉽게 보입니다. 질문 : 우리의 데이터베이스는 postgreSQL입니다. QSqlTableModel이이 데이터베이스에서 작동하는지 알고 있습니까? 또한 편집 전략의 경우 실제로는 tableview 자체를 통해 수정할 수 없으며 양식 (bellow tableview) 만 사용하여 수정할 수 있습니다. 그것은 일을 훨씬 쉽게 만들어 주는가? Finnaly, QTableView를 서브 클래스 할 필요가 없다고 확신합니까? 부울을 체크 박스로 변환하고 싶습니까? Thx – peterphonic
예, 적절한 qt sql 플러그인이 있으면 모든 데이터베이스에서 작동 할 수 있습니다. 예, 테이블을 통해 데이터를 편집 할 수 있습니다. 부울 값을 체크 박스로 표시하려면 [delegate classes] (http://qt-project.org/doc/qt-4.8/model-view-programming.html#delegate-classes)를 사용해야합니다. – hank
답을 다시 Thx. 내가 충분히 명확하지 않은 무엇인가. 사실, 이것은 설계상의 결정입니다. 우리가 원하는 것 : 사용자는 테이블보기 자체를 편집 할 수 없습니다. 사용자는 먼저 행을 선택해야하며 그에 따라 양식이 채워지고 사용자는 양식을 수정합니다. – peterphonic