When I run the program, the list view doesn't show the data in the model I've set up. What am I missing/where am I going wrong?
QStandardItemModel mymodel(this);
QStandardItem *item1 = new QStandardItem("This is item one");
item1->setData("item", Qt::UserRole + 1);
mymodel.appendRow(item1);
QStandardItem *item2 = new QStandardItem("This is item two");
item2->setData("item", Qt::UserRole + 1);
mymodel.appendRow(item2);
QStandardItem *item3 = new QStandardItem("This is item three");
item3->setData("item", Qt::UserRole + 1);
mymodel.appendRow(item3);
ui->listView->setResizeMode(QListView::Adjust);
ui->listView->setWordWrap(true);
ui->listView->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
ui->listView->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
ui->listView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
ui->listView->setModel(&mymodel);
ui->listView->showNormal();
Thanks to @vahancho - you should allocate from heap. Here's the revised snippet:
QStandardItemModel *mymodel = new QStandardItemModel(this);
QStandardItem *item1 = new QStandardItem("This is item one");
item1->setData("item", Qt::UserRole + 1);
mymodel->appendRow(item1);
QStandardItem *item2 = new QStandardItem("This is item two");
item2->setData("item", Qt::UserRole + 1);
mymodel->appendRow(item2);
QStandardItem *item3 = new QStandardItem("This is item three");
item3->setData("item", Qt::UserRole + 1);
mymodel->appendRow(item3);
ui->listView->setResizeMode(QListView::Adjust);
ui->listView->setWordWrap(true);
ui->listView->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
ui->listView->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
ui->listView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
ui->listView->setModel(mymodel);
ui->listView->showNormal();