使用 QSqlRelationalTableModel + QTableView 一次获取整个结果集

Fetch entire result set at once with QSqlRelationalTableModel + QTableView

我有一个 QTableView 和一个 QSqlRelationalTableModel 作为模型。本质上:

QSqlRelationalTableModel *theModel = ...;
QTableView *theView = ...;

theModel->setTable("table");
theView->setModel(theModel);
theModel->select();

不过,select() 似乎并没有立即加载整个结果集。相反,它会获取一部分,然后在我滚动到 table 视图底部时获取更多内容。

通常这是我想要发生的事情,但对于这个特定的应用程序,我想获取整个结果集(而不是一次获取一部分),以便视图立即填充完整的无需任何滚动或其他交互即可设置。

有没有办法做到这一点?

也就是说,有没有办法让 view/model 立即获取 完整 结果集?

我正在使用 Qt 5.15.2,目前正在使用 QSQLITE 驱动程序。

这在 documentation 中有适当的描述:要强制获取整个结果集,您可以使用以下方法:

while (myModel->canFetchMore())
    myModel->fetchMore();