关于指针的理解,我不是百分百地愿意接受。
我有一些代码给我以下错误:
“->”的基本操作数具有非指针类型“ QStandardItemModel”
以下是相关代码:
库存清单
class StockList
{
public:
void populateStockModel();
private:
QStandardItemModel m_stockModel;
};
stocklist.cpp
void StockList::populateStockModel() {
foreach(Item* item, m_items) {
QList<QStandardItem*> newRow;
QStandardItem* stockID = new QStandardItem(QString("%1").arg(item->stockID()));
QStandardItem* desc = new QStandardItem(QString("%1").arg(item->stockID()));
QStandardItem* price = new QStandardItem(QString("%1").arg(item->stockID()));
newRow.append(stockID);
newRow.append(desc);
newRow.append(price);
m_stockModel->appendRow(newRow);
}
}
错误是指包含
m_stockModel->appendRow(newRow);
的行。知道我该如何解决吗?我基本上是在尝试使用这些项目值填充模型。
帮助将不胜感激!谢谢!
最佳答案
在那里可以看到-m_stockModel
是QStandardItemModel
,并且没有operator->()
。
您可能打算编写m_stockModel.appendRow()
或将m_stockModel
声明为指向QStandardItemModel
的指针。没有完整的示例,很难确定哪个示例。
您可能还想提高异常安全性-如果分配price
失败,则会泄漏stockID
和desc
。