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

Is there a way to Convert QTableView model to QStandardItemModel

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

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

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

为了创建 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;

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

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