如何在Qt中从QListView选择项中获取QString?

时间:2012-06-28 13:42:49

标签: qt qstring qlistview

我需要将QListView中的所选项目名称作为QString。我试过谷歌,但我没有找到任何有用的东西。

2 个答案:

答案 0 :(得分:19)

这取决于selectionMode,假设您有ExtendedSelection,这意味着您可以选择任意数量的项目(包括0)。

ui->listView->setSelectionMode(QAbstractItemView::ExtendedSelection);

您应该遍历ui->listView->selectionModel()->selectedIndexes()以查找所选项目的索引,然后调用text()方法获取项目文本:

QStringList list;
foreach(const QModelIndex &index, 
        ui->listView->selectionModel()->selectedIndexes())
    list.append(model->itemFromIndex(index)->text());
qDebug() << list.join(",");

答案 1 :(得分:10)

如果QAbstractItemView::ExtendedSelection被禁用(只能一次选择一个项目),这就是你可以在没有任何循环的情况下做到这一点的方法:

QModelIndex index = ui->listView->currentIndex();
QString itemText = index.data(Qt::DisplayRole).toString();