Qt - 使用QDataWidgetMapper在小部件上映射两个表

时间:2016-09-20 20:02:06

标签: qt sqlite qtsql

SQLite中有两个表。举个简单的例子,人和地址。 如何将当前人的数据从两个表映射到窗体小部件?如果我们使用两个QDataWidgetMapper,我们应该如何同步两个表的当前索引?

是否有其他方法可以在表单上显示相关数据,包括插入?

我非常感谢你的帮助和例子。

1 个答案:

答案 0 :(得分: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,以便与多个小部件共享其数据。