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

问题描述 投票:0回答:1

如您所知,

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]

对于创建表,我使用以下代码:

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;
c++ qt qt5 qtableview qstandarditemmodel
1个回答
1
投票

如果该模型与

QStandardItemModel
不同,那么您必须创建自己的
clear()
方法,因此您应该提供该模型的代码。另一方面,如果它是
QStandardItemModel
,你可以直接投射它:

model = qobject_cast<QStandardItemModel*>(tblView->model());
© www.soinside.com 2019 - 2024. All rights reserved.