Как получить индекс или строку строки, выбранной в QListView?

Не знаете, как отобразить элемент или индекс, на которые нажали в списке?

{
...
nrow = 10;
ncol = 1;

/*create QListView */
m_listView = new QListView(this);
m_listView->setGeometry(QRect(QPoint(0,100), QSize(100, 150)));
connect(m_listView, SIGNAL(clicked(QModelIndex)), this, SLOT(hItem()));

QStandardItemModel *model = new QStandardItemModel( nrow, 1, this );

//fill model value
for( int r=0; r<nrow; r++ )
{
QString sstr = "[ " + QString::number(r) + " ]";
QStandardItem *item = new QStandardItem(QString("Idx ") + sstr);
model->setItem(r, 0, item);
}
}

void MainWindow::hItem()
{
m_txt1->setText(item@clicked);
}

1

Решение

Сигнал, испускаемый QListView имеет QModelIndex объект как параметр.
Отредактируйте свой слот, чтобы он соответствовал сигнатуре сигнала: void MainWindow::hItem(QModelIndex idx),

С вашим QModelIndex объект, который вы можете получить по нажатой строке, используя column() или же row(), Посмотреть здесь: http://harmattan-dev.nokia.com/docs/library/html/qt4/qmodelindex.html

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]