如何在一个 QTableView 中显示多个 QSqlTableModel 的内容?

Posted

技术标签:

【中文标题】如何在一个 QTableView 中显示多个 QSqlTableModel 的内容?【英文标题】:How to display content of multiple QSqlTableModels in one QTableView? 【发布时间】:2013-06-13 22:11:06 【问题描述】:

我有一个mysql表,我们称之为x

CREATE TABLE x (
    Id int unsigned NOT NULL PRIMARY KEY AUTO_INCREMENT,
    A int unsigned NOT NULL,
    B int,
    FOREIGN KEY (A) REFERENCES y(Id)
);

然后我还有另一张桌子,我们称之为y

CREATE TABLE y (
    Id int unsigned NOT NULL PRIMARY KEY AUTO_INCREMENT,
    First varchar(255),
    Last varchar(255)
);

我想在一个 QTableView 中显示表 x 并代替表 x 中的列 A 我想要从 Id 等于 Ay 中的列 FirstLast /em> 来自表 x

你有什么想法吗?如果我的解释不够清楚,请告诉我。

【问题讨论】:

【参考方案1】:

您可以将QSqlQueryModel 与 sql 连接查询一起使用:

QSqlQueryModel *model = new QSqlQueryModel;
model->setQuery("SELECT x.Id, y.First, y.Last, x.B FROM x "
                "LEFT JOIN y ON x.A = y.Id");

QTableView *view = new QTableView;
view->setModel(model);
view->show();

【讨论】:

以上是关于如何在一个 QTableView 中显示多个 QSqlTableModel 的内容?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 QTableView 中将 QColor 作为 QBackgroundRole 返回,它在 PyQt5 中具有预设样式表?

在 QTableView 的单个单元格中显示多个图标

如何使用 QSortFilterProxy 更新 QTableView 的 rowCount?

如何从QTableView的选定行获取值?

QTableView 如何以编程方式选择多个列

如何在 QTableView 的列中显示下拉列表并根据下拉列表进行过滤