У меня есть QListview, где я установил модель. Модель содержит QList. Теперь я хочу получить содержимое QListview при нажатии на элемент. Но я не знаю, как это сделать? Через некоторые обучающие программы, которые я последовал, я могу получить два элемента в QListview следующим образом. Но я не знаю, как заставить его работать? Пожалуйста, помогите. Код, который я работаю следующим образом.C++ QListView с иконками и сигналами по пунктам, нажатым
listviewmodel =new QListView;
listviewmodel->setModel(createModel());
listviewmodel->setViewMode(QListView::IconMode);
listviewmodel->setIconSize(QSize(size().width()/8, size().height()/8));
connect(listviewmodel,SIGNAL(clicked(const QModelIndex)),this,SLOT(ItemClicked(QModelIndex)));
QAbstractItemModel *MainWindow::createModel()
{
QStandardItemModel *model = new QStandardItemModel();
QList<QStandardItem *> listItem;
QStandardItem *item2 = new QStandardItem();
item2->setIcon(QIcon(QPixmap::fromImage(qimages2)));
listItem << item2;
QStandardItem *item1 = new QStandardItem();
item1->setIcon(QIcon(QPixmap::fromImage(qimages1)));
listItem << item1;
model->appendColumn(listItem);
return model;
}
void MainWindow::ItemClicked (QModelIndex index)
{
textEdit->setText(index.data().toString());
}
На самом деле, у меня была функция ItemClicked() в частных слотах. Но я не думаю, что это проблема. Фактически, как я сказал ранее, у меня есть значок изображения в моем списке, поэтому всякий раз, когда я нажимал значок любого изображения, я хочу, чтобы информация и детали были за ним. Но я ничего не нажимаю. редактирование текста пуст. – user3538273
Но какую информацию вы хотите отображать в 'textEdit'? Очевидно, что это поле остается пустым, если вы не задали текст в элементах списка. – trivelt