c++ - 如何获取QListView中选中行的索引或字符串?

标签 c++ qt 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);
}

最佳答案

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/

相关文章:

没有复制构造函数的 C++ 赋值运算符

qt - 将 ListModel 的特定项目绑定(bind)到组件

python - PySide2 QListView QTableView 同步问题

c++ - Qt:没有性能问题的(自定义)QWidget 列表

c++ - 我应该使用什么 C++ Write 函数?

c++ - waitpid 似乎没有进食

c++ - 在函数中使用静态变量与从调用者传递变量

如果通过 cronjob 执行应用程序,Qt 输出(qDebug qWarning 等)不起作用

python - 我如何告诉类方法等待,直到捕获到来自 QDialog 类方法的信号?

pyqt4 - 如何在 PyQt4 中为 QListView 获取 selectionchange 事件