不确定如何显示在列表中单击的项目或索引?
{
...
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);
}
最佳答案
QListView
发出的信号有一个QModelIndex
对象作为参数。
编辑您的插槽,使其与信号的签名匹配:void MainWindow::hItem(QModelIndex idx)
。
使用 QModelIndex
对象,您可以使用 column()
或 row()
检索被点击的行。看这里:http://harmattan-dev.nokia.com/docs/library/html/qt4/qmodelindex.html
关于c++ - 如何获取QListView中选中行的索引或字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18091297/