有没有办法将QTableView模型转换为QStandardItemModel

时间:2018-02-23 22:45:37

标签: c++ qt qt5 qtableview qstandarditemmodel

如您所知QTableView->model()返回QAbstractItemModel。有没有办法用QStandardItemModel填充QTableView->model()的实例?或将QAbstractItemModel转换为QStandardItemModel?我需要一些QStandardItemModel方法,例如clear()QAbstractItemModel中没有这样的东西。

QStandardItemModel *model = new QStandardItemModel();
model = tblView->model();

error: invalid conversion from ‘QAbstractItemModel*’ to ‘QStandardItemModel*’ [-fpermissive]

对于create table,我使用以下代码:

QStandardItemModel *model = new QStandardItemModel(0, 3, this);

for (int = 0; i < 100; i++) {
    model->setRowCount(model->rowCount() + 1);
    model->setData(model->index(i, 0), "...");
    model->setData(model->index(i, 1), "...");
    model->setData(model->index(i, 2), "...");
}
tblView->model() = model;

1 个答案:

答案 0 :(得分:0)

如果该模型与QStandardItemModel不同,则必须创建自己的clear()方法,以便为该模型提供代码。另一方面,如果它是QStandardItemModel你必须施放它:

model = qobject_cas<QStandardItemModel *>(tblView->model());