1

リストでクリックしたアイテムまたはインデックスを表示する方法がわかりませんか?

{
...
    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);
}
4

1 に答える 1

0

によって発信される信号にQListViewQModelIndex、パラメーターとしてオブジェクトがあります。シグナルの署名と一致するようにスロットを編集します: void MainWindow::hItem(QModelIndex idx).

オブジェクトでは、またはQModelIndexを使用して、クリックされた行を取得できます。ここを参照してください: http://harmattan-dev.nokia.com/docs/library/html/qt4/qmodelindex.htmlcolumn()row()

于 2013-08-06T22:25:45.360 に答える