2016-09-20 5 views
0

SQLite에는 두 개의 테이블이 있습니다. 간단한 예를 들어, 사람과 주소. 두 테이블에서 현재 사람의 데이터를 위젯으로 매핑하는 방법은 무엇입니까? 우리가 두 개의 테이블을 사용한다면 두 테이블의 현재 인덱스를 어떻게 동기화해야합니까? QDataWidgetMapper?Qt - QDataWidgetMapper를 사용하여 위젯에서 두 개의 테이블 매핑

삽입과 같은 관련 데이터를 폼에 표시하는 다른 방법이 있습니까?

귀하의 도움과 사례에 대해 매우 감사드립니다.

답변

0

내가 맞으면, join two SQL tables (예 : personaddress)을 원합니다. 이 경우 QSqlQueryModel이 필요합니다.

QDataWidgetMapper은 여러 위젯 중에서 단일 모델을 공유하는 데 사용됩니다. 그러나이 경우 하나의 위젯에 두 테이블의 데이터를 표시하려는 것 같습니다.

QSqlQueryModel *model = new QSqlQueryModel; 
model->setQuery("SELECT name, city FROM person INNER JOIN address ON persion.id=address.id"); 
model->setHeaderData(0, Qt::Horizontal, tr("Name")); 
model->setHeaderData(1, Qt::Horizontal, tr("City")); 

이제이 2D 모델을 필요할 때마다 사용할 수 있습니다. 또한이 모델과 함께 QDataWidgetMapper을 사용하여 데이터를 여러 위젯과 공유 할 수 있습니다.