PyQt - 直接使用SQL和QSqlTableModel

时间:2012-12-25 04:28:21

标签: sql database qt pyqt

我正在编写一个简单的学生成绩管理器,用于在PyQt上练习编程(我不想再使用可怕的 Visual Basic )。但是我在选择数据模型时遇到了很大的问题。

我首先找到了QSqlTableModel,这是一个很好的自动更新模型。麻烦的是,我需要使用大量的SQL(JOINWHERE)来从数据库中选择数据。 QSqlTableModelselect()filter()

然后我找到QSqlQueryModel,但它是只读的。所以我重写了它的setData()方法。所以它现在是读写的。不幸的是,QSqlQueryModel的可用功能少于QSqlTableModel

如您所见,如果我可以使用QSqlTableModel的SQL,我可以解决所有问题。

所以...?

1 个答案:

答案 0 :(得分:2)

QSqlTableModelsetQuery方法,您可以使用该方法设置自定义查询,例如:

model = QSqlTableModel()
query = QSqlQuery(your_query)
model.setQuery(query)

然而,Qt documentation州:

  

此函数只调用QSqlQueryModel :: setQuery(query)。您通常不应该在QSqlTableModel上调用它。相反,使用setTable(),setSort(),setFilter()等来设置查询。