我正在编写一个简单的学生成绩管理器,用于在 PyQt 上练习编程(我不想再使用糟糕的 Visual Basic 了)。但是我在选择数据模型时遇到了一个大问题。
我首先找到了QSqlTableModel
,它是一个很棒的自动更新模型。麻烦的是,我需要使用大量的 SQL (JOIN
, WHERE
) 从数据库中选择数据。 QSqlTableModel
只有 select()
和 filter()
。
然后我找到了QSqlQueryModel
,但是它是只读的。所以我重写了它的setData()
方法。所以它现在是可读写的。不幸的是,QSqlQueryModel
不如 QSqlTableModel
有用。
如您所见,如果我可以将 SQL 与 QSqlTableModel
一起使用,我就可以解决所有问题。
那么……?
最佳答案
QSqlTableModel
有 setQuery
方法,您可以使用它来设置自定义查询,例如:
model = QSqlTableModel()
query = QSqlQuery(your_query)
model.setQuery(query)
然而,Qt documentation状态:
This function simply calls QSqlQueryModel::setQuery(query). You should normally not call it on a QSqlTableModel. Instead, use setTable(), setSort(), setFilter(), etc., to set up the query.
关于sql - PyQt - 直接使用 SQL 和 QSqlTableModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14027676/