【发布时间】:2017-10-13 17:29:18
【问题描述】:
Qt 版本: 5.8
假设我有以下 SQL 表
-- People
person_id | first_name | last_name | age
-- Cars, person_id is a foreign key to show that this person owns this car
car_id | car_year | car_make | car_model | person_id
假设我想用这样的数据混合填充以下 Table View 或 Table Widget
// Table that the user sees. Notice that not all the information from the tables is shown.
first_name | last_name | car_year | car_make | car_model
最好/推荐的方法是什么?我可以看到以下两种方式,但我觉得这两种方式都不是最好的方式
- 使用表格小部件,这是一个基于项目的表格视图,具有默认模型。为此,我猜我需要制作 QSqlQuery 来从我的 QSqlDatabase 获取数据,然后以这种方式填充表格小部件。
- 使用 Table View,这需要我为视图的数据模型创建自己的 QSqlTableModel。根据 QSqlTableModel 的文档,它是一个用于从单个表中读取和写入数据库记录的高级接口。这意味着我需要两个 QSqlTableModel,一个用于上面的每个表。但是,表格视图只能使用一个模型,并且它将显示来自该模型的所有数据。我认为唯一可行的方法是将表格组合成一个表格,其中仅包含我希望用户看到的信息。我觉得那会很丑陋但可能。在这种情况下,我是否应该一共有三个表 - 上面的两个加上组合的一个供用户查看?
我觉得 #1 比这两个更好,但我想知道是否还有比这两个更好的方法。
【问题讨论】: