关于指针的理解,我不是百分百地愿意接受。

我有一些代码给我以下错误:


  “->”的基本操作数具有非指针类型“ 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_stockModelQStandardItemModel,并且没有operator->()

您可能打算编写m_stockModel.appendRow()或将m_stockModel声明为指向QStandardItemModel的指针。没有完整的示例,很难确定哪个示例。

您可能还想提高异常安全性-如果分配price失败,则会泄漏stockIDdesc

10-08 04:13