Q:

QStandardItemModel::appendRow. Как правильно добавить и получить обратно строку

Не добавляются строки (или не находятся добавленные?) в QStandardItemModel.
Вот, собственно, код:
    QStandardItem * pProduct = new QStandardItem("3");
    pProduct->setData("product", strProductName);
    this->appendRow(pProduct);

    QList<QStandardItem *> entries = this->findItems("product");
    qDebug() << entries.count();

И соответственно вывод всегда 0.
Что я делаю не так? 
Как правильно добавить и получить обратно строку?
UPD: 
удалось локализовать проблему:
    QStandardItem * pChildEntry = new QStandardItem(QString("name"));
    pChildEntry->setData(QString("product"), strProductName);
    model.appendRow(pChildEntry);
    qDebug() << model.rowCount();

    QList<QStandardItem *> entries = model.findItems(QString("product"));
    entries.count();

Количество строк выводит нормально, следовательно не работает поиск, а не добавление строк

A:

Строки можно добавлять, например, так:
QStandardItemModel model(10, 10);
QList<QStandardItem*> row;
for (int i = 0; i < model.colCount(); i++)
{
    QStandardItem* item = new QStandardItem(QString("column %1").arg(i));
    row.append(item);
}
model.append(row);

Если в модели только один столбец, то можно чуть проще:
QStandardItemModel* model = new QStandardItemModel(0, 0);
for (int i = 0; i < 10; ++i)
    model->appendRow(new QStandardItem(QString("Row %1").arg(i)));

Метод QStandardItemModel::findItems производит поиск, сравнивая только данные, имеющие роль Qt::DisplayRole. Следующий код
QStandardItemModel* model = new QStandardItemModel();

QStandardItem* item0 = new QStandardItem("Item0");
model->appendRow(item0);
qDebug() << "Item0:" << model->findItems("Item0").count();

QStandardItem* item1 = new QStandardItem();
item1->setData("Item1", Qt::DisplayRole);
model->appendRow(item1);
qDebug() << "Item1:" << model->findItems("Item1").count();

QStandardItem* item2 = new QStandardItem();
item1->setData("Item2", Qt::UserRole);
model->appendRow(item2);
qDebug() << "Item2:" << model->findItems("Item2").count();

выводит в консоль
Item0: 1
Item1: 1
Item2: 0

Таким образом, если Вы установили данные вызовом метода QStandardItem::setData со вторым параметром, отличным от Qt::DisplayRole, QStandardItemModel::findItems эти данные не найдёт.

