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 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
这样做的最佳/推荐方法是什么?我可以看到以下两种方式,但我觉得这两种方式都不是最好的方式
我觉得#1 比这两个更好,但我想知道是否还有比这两种更好的方法。
答案 0 :(得分:0)
如果person_id
是表格people
的主键,您可以使用QtSql.QsqlRelationalTableModel
来显示QtWidgets.QTableView
中几个表格中的数据,例如:
QSqlRelationalTableModel rm = new QSqlRelationalTableModel(parentObject, database);
rm→setTable(„cars“);
rm→setRelation(4, QSqlRelation(„people“, „person_id“, „first_name, last_name“);
rm→select();
QTableView tv = new QTableView();
tv→setModel(rm);
tv→hideColumn(0); # hide column car_id
hh = tv->horizontalHeader();
hh→moveSection(4, 0); # change order of columns
hh→moveSection(5, 1);