<分区>
我有一个QSQLite
数据库,我从中读取了所有值。现在,我想使用 QStandardItemModel
将整个数据库显示到 QTableView
上。
我该怎么做?
标签 c++ qt sqlite qt5 qtableview
<分区>
我有一个QSQLite
数据库,我从中读取了所有值。现在,我想使用 QStandardItemModel
将整个数据库显示到 QTableView
上。
我该怎么做?
最佳答案
这个回答并没有试图直接回答问题,因为我认为有更好的选择是作者不知道的,但我试图引导他选择更好的选择。因此,我提出以下建议:
要在 QTableView 中显示数据库的信息,建议使用 QSqlTableModel
.
The QSqlTableModel class provides an editable data model for a single database table.
QSqlTableModel is a high-level interface for reading and writing database records from a single table. It is built on top of the lower-level QSqlQuery and can be used to provide data to view classes such as QTableView.
例如:
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName(":memory:");
if (!db.open())
qDebug()<< "Cannot open database"
QSqlTableModel *model = new QSqlTableModel;
model->setTable("person");
model->setEditStrategy(QSqlTableModel::OnManualSubmit);
model->select();
QTableView view;
view.setModel(model)
有关更多信息,我建议阅读以下内容:
此选项的优点:
该类会自动识别字段及其类型。
也可用于以编程方式访问数据库,而不将其绑定(bind)到 View 。
如果您需要添加过滤器,您必须使用 setFilter()
如果您需要订购,可以使用 setSort()
.
关于c++ - 在qt中使用QStandardItemModel显示QSQLite数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45573213/