为了在QTableView中显示一些数据,我使用一个函数来计算QStandardItemModel并将其发送回调用函数。
函数调用:
QStandardItemModel MyModel = computeMyModel();
ui->tV->setModel(&MyModel);被叫函数
QStandardItemModel computeMyModel()
{
QStandardItemModel newModel;
//........... Steps to compute newModel
return newModel;
}当我试图运行代码时,我会得到以下错误。
error C2248: 'QStandardItemModel::QStandardItemModel' : cannot access private member declared in class 'QStandardItemModel'如何解决这个问题?(如何通过引用成功地将myModel从一个函数传递到另一个函数?)
制约因素:
computeMyModel()函数中的模型。computeMyModel()。发布于 2014-09-16 12:45:38
试试这个:
QStandardItemModel* computeMyModel()
{
int counter = 0;
QStandardItemModel *model = new QStandardItemModel;
for (int i = 0; i < 3; ++i)
for (int j = 0; j < 3; ++j)
{
counter++;
QStandardItem *item = new QStandardItem(QString::number(counter));
model->setItem(i,j,item);
}
return model;
}使用:
QStandardItemModel *model = computeMyModel();
ui->tableView->setModel(model);更新。
不是的。这将是正常的,因为您分配内存和返回指针,您的指针有这个内存入口,它将拥有它,直到有东西删除它。要证明这一点,请看下面的代码片段。如您所见,您在函数中分配内存,返回指针,使用该指针设置数据并调用setModel。它编译并工作。
功能:
QStandardItemModel* computeMyModel()
{
QStandardItemModel *model = new QStandardItemModel;
return model;
}使用
int counter = 0;
QStandardItemModel *model = computeMyModel();
for (int i = 0; i < 3; ++i)
for (int j = 0; j < 3; ++j)
{
counter++;
QStandardItem *item = new QStandardItem(QString::number(counter));
model->setItem(i,j,item);
}
ui->tableView->setModel(model);https://stackoverflow.com/questions/25868963
复制相似问题