На самом деле, я удивлен, что вы не получите крушения.Вы создаете item0
в стеке, а затем передаете указатель на него QList
.Когда этот метод покидает область действия, item0
удаляется, и ваш список содержит указатель на область гниения памяти, которую использовал для хранения QStandardItem
.
{
QStandardItem item0("test");
QList<QStandardItem*> items;
items.insert(0, &item0); // Doesn't transfer ownership
model->appendRow (items);
} // Out of scope! Oh no!
будет просто создать новый элемент, а затем добавить его, используя что-то вроде QStandardItemModel::setItem
, например:
QStandardItem *item0 = new QStandardItem("test");
model->setItem(0, 0, item); // transfers ownership of item0 to the model